## 關于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);
}
~~~
- 空白目錄
- summernote富文本編輯器
- 基本使用(一)
- 基本使用(二)
- 基本使用(三)
- 基本使用(四)
- 修改Summernote文本編輯器支持上傳圖片到服務器
- 修改圖片上傳后的樣式
- Composer的一些基本用法
- 使用中國鏡像快速安裝
- 自己項目中常用到的一些Composer
- TP5的一些常見功能實現
- 通過phpmailer實現郵件的發送
- 使用PhantomJS將網頁生成圖片
- TP5在Linux服務器中LNMP環境下的配置
- 利用JWT做token開發
- 小程序開發備忘錄
- 小程序生成自定義二維碼
- Bootstrap使用心得
- 異步加載數據,更新select方法
- Html5實現圖片上傳前裁剪
- mysql一些小技巧
- php移動mysql字段的位置
- 服務器相關知識
- 阿里云專屬網絡外網訪問的設置
- Linux定時執行任務