企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 关于PhantomJS PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。 PhantomJS 可以用于 页面自动化 , 网络监测 , 网页截屏 ,以及 无界面测试 等。 * * * * * ## 安装PhantomJS 我因为我都是在linux的环境,所以我这里只介绍linux下面的安装方式。 ### 第一步:安装扩展: (1)下面是我在linux上的安装过程,如果没有安装git请先yum install git 安装casperjs ~~~ cd / git clone git://github.com/n1k0/casperjs.git cd casperjs ln -sf /casperjs/bin/casperjs /usr/local/bin/casperjs //可以忽略 实际执行中php是执行 /casperjs/bin/casperjs ~~~ (2)安装phantomjs,下载地址:http://phantomjs.org/download.html 下载后操作很简单,直接把解压好的\bin\phantomjs移动到\usr\local\bin\phantomjs就可以了。 这里需要注意的是:你要先了解你的Linux系统是32位还是64位的,然后在上面的下载地址中选择对应的版本下载。 测试phantomjs --version 有结果不报错,说明安装OK (3)安装字体 1. 首先获得一套“微软雅黑”字体库(Google一下一大把),包含两个文件msyh.ttf(普通)、msyhbd.ttf(加粗); 2. 在/usr/share/fonts目录下建立一个子目录,例如win,命令如下: ~~~ # mkdir /usr/share/fonts/win ~~~ 3. 将msyh.ttf和msyhbd.ttf复制到该目录下,例如这两个文件放在/root/Desktop下,使用命令: ~~~ # cd /root/Desktop # cp msyh.ttf msyhbd.ttf /usr/share/fonts/win/ ~~~ 4. 建立字体索引信息,更新字体缓存: ~~~ # cd /usr/share/fonts/win # mkfontscale (如果提示 mkfontscale: command not found,需自行安装 # yum install mkfontscale ) # mkfontdir # fc-cache (如果提示 fc-cache: command not found,则需要安装# yum install fontconfig ) ~~~ 至此,字体已经安装完毕! * * * * * # TP5代码 ~~~ public function textimg(){ $www = "http://blog.csdn.net/nanshan_hzq/article/details/6616543"; //要生成的网页地址 $name= '../public/uploads/'.date('Y-m-d').'/'.time().'.png'; //生成的图片名 //定义js文件内容 body就是页面要生成的内容区间 也可以是页面的某个id如: #content $str = <<<ABC var casper = require('casper').create(); if(casper.cli.has(0)){ var id = casper.cli.get(0); //casper.echo(id); casper.start("@www@", function() { this.captureSelector("@name@", 'body'); }); casper.run(); }else{ casper.exit(); } ABC; $js='../public/uploads/'.date('Y-m-d').'.js'; $str = str_replace(array("@www@","@name@"), array($www,$name), $str); file_put_contents($js, $str); //如果不加这句就会报错“Fatal: [Errno 2] No such file or directory; did you install phantomjs?”,详情参考http://mengkang.net/87.html putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs"); //调试使用下面的代码,会提示权限等各种错误,例如sh: /casperjs/bin/casperjs: Permission denied $handle = popen('/casperjs/bin/casperjs '.$js.' '.$name.' 2>&1','r'); $read = stream_get_contents($handle); echo $read; echo '<img src="http://'.$_SERVER['HTTP_HOST'].'/'.$name.'">'; pclose($handle); } ~~~