本篇文章給大家分享的是有關(guān)如何使用php-js-ext在PHP內(nèi)解析javascript腳本,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的臨夏網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
當(dāng)你在因個(gè)人興趣愛好而開發(fā)PHP程序時(shí),面對(duì)可以達(dá)到你的目的卻長達(dá)千行以上的js腳本,你有精力去用php重寫它么?想用PHP模擬用戶行為么?但卻遇到j(luò)s泛濫的站點(diǎn)......一個(gè)不為人所知的php擴(kuò)展項(xiàng)目可以滿足這些需求,這個(gè)擴(kuò)展的目的就是在php內(nèi)解釋javascript。
項(xiàng)目主頁 http://aurore.net/projects/php-js/
php-js-ext是mozilla javascript解釋器和php之間的一座橋梁,因此我們除了需要下載***版本為0.1.2的php-js-ext,還需要下載***版本為1.7.0的mozilla js,鏈接如下(php-js-ext 0.1.2發(fā)布時(shí)是配合js-1.5工作,但經(jīng)我測試,也可以配合js-1.7工作)
wget http://aurore.net/projects/php-js/php-js-ext-0.1.2.tar.bz2
wget http://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz
系統(tǒng)是CentOS 4.5
1.安裝mozilla js
解開js-1.7.0.tar.gz
tar zxvf js-1.7.0.tar.gz
cd js/src
開始編譯(如不能完成編譯見***說明)
make -f Makefile.ref
拷貝libjs.so到/usr/lib
cp Linux_All_DBG.OBJ/libjs.so /usr/lib
ldconfig
拷貝頭文件到/usr/include
cp jsapi.h jscompat.h jslong.h jsosdep.h jsotypes.h jspubtd.h jstypes.h jsproto.tbl jsconfig.h Linux_All_DBG.OBJ/jsautocfg.h /usr/include/
自此mozilla js的安裝工作就完成了,下面開始進(jìn)行php-js-ext的安裝
2.安裝php-js-ext
解開php-js-ext-0.1.2.tar.bz2
tar jxvf php-js-ext-0.1.2.tar.bz2
cd php-js-ext-0.1.2
創(chuàng)造環(huán)境并設(shè)定擴(kuò)展版本(如有一個(gè)以上的php存在,需要輸入phpize的完整路徑)
/path/phpize
配置并編譯安裝(如有一個(gè)以上的php存在或configure無法找到php的位置,需要在configure的時(shí)候指定-with-php-config=/path/php-config)
./configure
make && make install
如果一切無誤,js.so已經(jīng)在你的php的lib目錄
***,修改你的php.ini,在相應(yīng)的位置加入extension=js.so,并確認(rèn)extension_dir的設(shè)定正確。
輸出一個(gè)phpinfo的結(jié)果,以查看js.so是否被正確加載和可能的錯(cuò)誤信息。
如果一切無誤的話,我們就可以開始使用這個(gè)功能了。
這里附上官方網(wǎng)站的使用說明:
A simple ./configure; make; make install should do the trick. Make sure to add an extension=js.so line to your php.ini/php.d. Note: you need to install libjs first. If you're using a Redhat-esque system, you can use the SRPM provided above, else, use the TBZ.
Then, just use js_eval to evaluate your JavaScript. js_eval returns the value returned by the JavaScript interpreter to PHP.
For example:
js_eval("var a = 123;");
js_eval("var b = 456;");
$c = js_eval("[a, b];");
echo "a is ".$c[0]."\n";
echo "b is ".$c[1]."\n";
js_eval("var sum = function(x, y) { return x + y; }");
$d = js_eval("sum(a, b);");
echo "The sum of a and b is ".$d."\n";
Would produce:
a is 123
b is 456
The sum of a and b is 579
js_eval takes an optional boolean argument, assoc, which returns objects as associative arrays instead of PHP objects.
The php-js execution environment provides two built-in JavaScript system functions:
* print
* gc
print outputs its argument to the php output stream.
gc forces garbage collection within the JavaScript environment.
(非Redhat的linux發(fā)行版可能會(huì)在mozilla js的編譯過程中產(chǎn)生錯(cuò)誤,是因?yàn)檫B接器和內(nèi)核已經(jīng)不對(duì)a.out提供支持,我們需要用gcc來生成一個(gè)共享庫而不是ld了。打開js/src/config/Linux_All.mk,將第50行的 MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS) 更改為 MKSHLIB = $(CC) -shared $(XMKSHLIBOPTS) ,make -f Makefile.ref clean后再次嘗試編譯。)
以上就是如何使用php-js-ext在PHP內(nèi)解析javascript腳本,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享標(biāo)題:如何使用php-js-ext在PHP內(nèi)解析javascript腳本
本文網(wǎng)址:http://jinyejixie.com/article42/ppiohc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站內(nèi)鏈、服務(wù)器托管、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)