2025-

* 天 * 时 * 分 * 秒
至于未来会怎么样
反正路还长 天总会亮

利用psd.js解析PSD文件

jiminzhang阅读(2080)

现在市面上很多的webapp都提供模板功能,所谓模板就是一系列元素的集合,模板的制作一般都需要设计师先在Photoshop等软件中制作好设计好,然后再一定的方式来还原设计稿,要么需要编码要么需要在某些应用中按照设计稿重画设计生成模板数据,都还是比较麻烦的,我们能不能通过psd文件直接生成模板呢?要做到这点我们就需要解析psd文件,而psd文件是Photoshop软件的涉及保存文件,浏览器并不能直接识别,所幸的是psd.js赋予了我们这样的能力。

psd.js 是一个用来解析PhotoShop的PSD文件的 JavaScript 库,支持在浏览器上运行以及Node.js环境中使用,通过psd.js我们可以处理PSD文档并得到关键数据,例如:

1、文件结构

2、文件大小

3、图层/目录大小+定位

4、图层/目录名

5、图层/目录可见性和不透明度

6、字体数据

7、文本内容

8、字体种类,大小,颜色

9、颜色模式和相应数值

10、矢量蒙版数据

11、平面图像数据

12、图层组合

一、服务端使用

1、安装

PSD.js没有原生依赖项,我们可以通过npm install psd –save来安装psd.js并将其加入到我们的项目依赖中。

2、使用示例

二、浏览器端使用

1、安装

浏览器端我们只需要在页面引用dist版本的psd.js源文件即可使用其全部功能。

2、使用

PSD.js在浏览器和NodeJS环境中的用法大致相同,示例如下:

需要注意的是服务端通过文件加载PSD文件是用的PSD.fromFile方法,而浏览器端通过使用的是PSD.fromURL方法从url加载psd文件,对于浏览器本地文件的加载我们可以通过URL.createObjectURL方法生成objectUrl再调用PSD.fromURL方法。

点击这里查看一个浏览器端解析psd的例子。

解决CentOS系统内存不足导致编译错误

jiminzhang阅读(1695)

问题场景

在 1核1G 的 CentOS 系统上安装 fileinfo 扩展报错:

cc: Internal error: Killed (program cc1)
...

解决方案

使用临时交换分区:

sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile

命令参考传送门:linux dd 命令详解

在扩展安装完成后可以取消交换分区:

sudo swapoff /swapfile
sudo rm /swapfile

PHP 过滤器 – 单个变量过滤

jiminzhang阅读(906)

刚刚在 laravel 社区看见一篇文章,欸~,发现一个自己一直没有使用过的函数 filter_var()
于是就去官网搜了下:

filter_var — 使用特定的过滤器过滤一个变量

欸~,奇怪的知识增加了。那有了这个函数的话,我是不是可以在多账号的时候使用这个来判断进行登录呢,比如邮箱登录和手机登录,只要用 filter_var 函数判断账号是不是邮箱,不是的话则使用手机号。emmm,有点意思。

那怎么使用呢?
直接上代码咯,有什么好说哒。

public function login(Request $request){
     $username = $request->username;
      
     // 过滤器 第一个参数是要过滤的变量 第二个参数是过滤器的 ID
     // 这里是判断数变量是否是邮箱地址
     filter_var($username, FILTER_VALIDATE_EMAIL) ? 
            $data['email'] = $username :
            $data['phone'] = $username;

     //接收传来的值
     $data['password'] = $request->password;

     //验证密码是否正确
     $token = \Auth::guard('api')->attempt($data);
}

献上过滤器ID手册传送门。。。

Nginx 设置项目配置文件不可 URL 访问

jiminzhang阅读(832)

在许多不同框架中,可能一些项目的主要配置文件(web.config,sql.config …)会放在项目根目录,当 HTTP 应用服务器配置错误时,会导致这些配置文件可以通过 URL 直接访问。

如何解决这一问题呢?

我们可以在 nginx 层做下控制(nginx.conf):

location ~* \.(config|ini|docx|txt|doc)$ {
         # deny all;
         return 404;
}

这样就可以实现目录下文件不可直接 URL 访问了。

2020年10月11日记一次网站被黑经历及解决过程

jiminzhang阅读(2421)

距离上次被黑是去年的事儿了,也是同样的问题(从搜索引擎点击进入网站后自动跳转到不良网站、和多目录挂马),我觉得有必要静下心来,分享一下被黑的这段经历。

如图,搜索出来的收录信息都是不良内容。。。。

在叙述经历之前,先简单的介绍一下服务器配置情况:单核512内存1MB带宽,Linux系统(CentOS7)。

以上配置,对于一个日访问量几千的网站来说应该绰绰有余了,并发撑死十几个左右。

经历:

2020年10月11日上午,我通过搜索引擎查询该网站关键词排名时发现收录信息异常,随即通过后台发现index.php文件里的head内容被篡改,直接输入链接访问的无异常,通过蜘蛛访问的会自动跳转到不良网站。

然后我尝试将eval代码解密

这招还真难发现啊

linux系统函数学习

jiminzhang阅读(891)

程序: 死的, 只会占用磁盘空间
进程: 活的,运行起来的程序,占用内存,cpu系统资源等

PCB进程控制块
就是一个结构体
拥有的相关信息
  进程id, 文件描述符, 进程工作目录, *umask掩码, 信号相关信息资源, 用户id和组id,
  进程状态: 初始态, 就绪态, 运行态, 挂起态, 终止态

fork()函数
创建子进程, 父进程各自返回.父进程返回子进程pid, 子进程返回0
头文件:unistd.h
  
父子进程相同:
  刚fork后: data段, text段, 堆, 栈, 环境变量, 宿主目录位置, 进程工作位置, 信号处理方式
  
父子进程不同:
  进程id, 返回值, 各自的父进程, 进程创建时间, 闹钟, 未决信号集
  
父子进程共享:
  读时共享,写时复制
  文件描述符, mmap映射区
  
获取进程各个id
  getpid():获取当前进程id
  getppid():获取父进程的id
  getgid():获取当前组id

记录一次服务器免密登录失效问题

jiminzhang阅读(734)

  1. 在本地使用ssh-keygen生成密钥
    ssh-keygen -t rsa
  2. 将本地~/.ssh/id_rsa.pub使用ssh-copy-id复制到user@hostname
    ssh-copy-id -i ~/.ssh/id_rsa.pub user@hostname
  3. 成功后我尝试使用ssh user@hostname连接发现还是需要输入密码,随后检查了半天,随后去了百度参考了远程登陆不要密码,使用authorized_keys不生效的解决方法才知道是我的.ssh文件夹与authorized_keys文件权限错误的原因, 随后修改文件夹权限再次连接,成功解决!

服务端~/.ssh文件夹权限必须是 700
chmod 700 ~/.ssh
服务端~/.ssh/authorized_keys权限必须是 600
chmod 600 ~/.ssh/autohrized_keys

回忆下个人的建站史(编辑中。。。)

jiminzhang阅读(822)

第一个网站:张济民社区(zjm.5d6d.com)建立与2007年5月,建立方向为游戏经验交流,后因5d6d停止运营而关闭。

第二个网站:开心茶馆(kxcg.net已出售,已无法访问,新域名为50li.com)建立于2011年12月,建立方向为杭州本地交流、技术交流等,后因本人很少打理而将域名出售。

第三个网站:**乐园(*********.info、com.cn、cc)建立与2012年3月,建立方向为明星粉丝交流,现运营情况良好,收录稳定。

第四个网站:乐卓网(原域名leapk.net已出售,已无法访问,新域名为apkle.net)建立于2012年4月,建立方向为安卓资讯、产品动态交流。

第五个网站:三易发发博客(3e88.cn),建立于2012年7月,建立方向为测试博客程序及操作而建,不到一个月就关闭了。

第六个网站:费玉清中文网(feiyuqing.cn)建立于2013年10月,建立方向为明星粉丝交流,现运营情况良好。

第七个网站:**社区(*****.cn)建立于2018年9月,建立方向为某app产品交流、灌水等,现准备将此域名出售中。

第八个网站:张济民个人博客(zhangjimin.com)建立于2020年9月,建立方向为分享工作经验和生活中的点点滴滴等。

ps:暂时想到的就这么多了,***为本人暂未公开网站。

干货!相关行业证书查询地址(浙江省)(持续更新中。。。)

jiminzhang阅读(985)

国家企业信用信息公示系统(全国)http://www.gsxt.gov.cn/index.html

小微企业名录查询http://xwqy.gsxt.gov.cn/

全国认证认可信息公共服务平台(可查询体系认证证书、3C证书、CQC证书等)http://cx.cnca.cn/CertECloud/index/index/page

浙江省“守合同重信用”企业公示查询http://szxt.zjamr.zj.gov.cn/publishlvl/

工业产品生产许可证(工业和商用电热食品加工设备)查询入口http://zjamr.zj.gov.cn/col/col1228971567/index.html?tabid=207

工业产品生产许可证(商用燃气灶具已取消发证,有效期内证书可查询)查询入口http://psp.e-cqs.cn/aeaPP/pp/query/certificateQuery/publicityInfo.jsp

消毒产品生产企业卫生许可信息查询(需法人账号登录)http://www.zjzwfw.gov.cn/zjservice/item/detail/index.do?localInnerCode=6e648208-9e70-4666-b8fd-c7865d8dd68b&jurisCode=330000

浙江省企业安全生产标准化信息查询http://bzh.yjt.zj.gov.cn/loginAction!dbqySearch.action

节能/节水产品查询http://www.ccgp.gov.cn/search/jnqdchaxun.htm

环境标志产品查询http://www.ccgp.gov.cn/search/hbqdchaxun.htm

杭州建设工程招标平台http://115.233.209.212:88/

乐卓网新域名apkle.net备案中。。。

jiminzhang阅读(831)

原域名leapk.net于2020年9月11日出售,随即注销备案,这域名市场上挂了2年多,没想到这价格还真有人来买。。

所幸的是原数据还在,抽空打算把格式转为UTF-8。

本来想换个网站名称的,想到的新域名基本上都有人注册了,想来想去还是叫乐卓好了。

ps:apkle感觉有点蹭苹果的意思。。。

张济民个人博客-一个伪文艺青年原创博客网站

工具备用按钮