php里运行js,在PHP 中运行JS - mickelfeng的个人空间 - OSCHINA - 中文开源技术交流社区...
这天去zend网站上逛了逛, 看到一个monkeyspider 的标签,
http://devzone.zend.com/article/4704-Using-JavaScript-in-PHP-with-PECL-and-SpiderMonkey
嘿嘿, 原来是用c写了一个扩展php扩展 把spiderMonkey和php 联起来了。 照着试了试, 还真跑下来了, 拿上来分享一下。
首先是下载
http://ftp.mozilla.org/pub/mozilla.org/js/ js-1.7
http://pecl.php.net/package/spidermonkey spidermonkey 的php扩展
shell# tar -xzvf js-1.70.tar-gz
shell# cd js/src
shell# make -f Makefile.ref
shell# mkdir -p /usr/local/include/js/
shell# cp *.{h,tbl} /usr/local/include/js/
shell# cd Linux_All_DBG.OBJ
shell# cp *.h /usr/local/include/js/
shell# cp js /usr/local/bin/
shell# cp libjs.so /usr/local/lib/
shell# ldconfig
进入spidermonkey , php 扩展目录,
shell# phpize
shell# ./configure
shell# make
shell# make install
在make 的时候可能会报错, 那报错的那几行注释吧, 用了几个php 的struct 里没有的属性
在php.ini 里把这个扩展打开吧, 试试把
// create JavaScript context
$js = new JSContext();
// define PHP variables
$a = 10;
$b = 2;
// assign variables to JavaScript context
$js->assign(‘a’, $a);
$js->assign(‘b’, $b);
// define script code
$script = <<
c = a + b;
END;
// evaluate script and display result
echo ”The sum of $a and $b is: ” . $js->evaluateScript($script);
?>
php里运行js,在PHP 中运行JS - mickelfeng的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐
- c语言分号的转义字符,C语言中的转义字符 - osc_9gm4ypss的个人空间 - OSCHINA - 中文开源技术交流社区...
C语言中的转义字符 在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么.这类字符称为可显示字符,如a.b.c.$.+和空格符等都是可显示字 ...
- java影像出租面向对象,Java中的面向对象 - zhiruochujian的个人空间 - OSCHINA - 中文开源技术交流社区...
一.面向对象 面向对象和面向过程的区别 过程就是函数,就是写方法,就是方法的一种实现. 对象就是将函数,属性的一种封装.用人们思考习惯的方式思考问题. 如何自定义类 修饰符 类名{ //成员变量 修饰 ...
- ios 图像坐标系_iOS中理解坐标系 - Megan_zhou的个人空间 - OSCHINA - 中文开源技术交流社区...
坐标.点和像素之间的微妙转换也可能降低绘制性能,导致线条和文字模糊.观察以下代码: CGContextSetLineWidth(context, 3.); // 绘制从坐标{10, 100}到{200 ...
- 直白点理解c 语言中的循环体,反射机制 小小谈 - osc_nnbkiac5的个人空间 - OSCHINA - 中文开源技术交流社区...
反射机制(Reflection) [TOC] 写在前面 本文地址:https://www.cnblogs.com/oberon-zjt0806/p/11082012.html 这里是Oberon 本文 ...
- java中类型转换的造型_Java-类型转换 - 吉胖子很瘦的个人空间 - OSCHINA - 中文开源技术交流社区...
类型转换 在实际开发过程中,存在类型转换,类型转换分为两种,自动类型转换和强制类型转换. 自动类型转换 程序编译或运行过程中,jvm可以发生自动类型转换.转换规则: [1]容量小的数据类型可以自动转换 ...
- java中0l 1_Java基础笔记1 - osc_0ltyoebk的个人空间 - OSCHINA - 中文开源技术交流社区...
java 1.一元运算符:只需要一个数据就可以进行的运算符.例如 取反 ! 自增 ++ 自减-- 2.二元 运算符 :需要两个数据才可以进行操作的运算符,例如: 加法 + ,赋值 = 3.三元运算符 ...
- php中nodethirtythree,node常用模块 - LinearLaw的个人空间 - OSCHINA - 中文开源技术交流社区...
nodeJS和ES6 node基本用法 (1)安装nodeJS cmd输入node -v出现node版本号,表明安装成功. (2)node中的互相调用 require("./02.js&qu ...
- zabbix中mysql连不上的排错_zabbix使用排错 - oschina130111的个人空间 - OSCHINA - 中文开源技术交流社区...
在linux系统中,几乎所有运行的服务都会产生相对就的日志(log),所运行的程序在出错时都会有错误提示,即使没有任何提示也可以通过"echo $"来查看运行是否成功.使用zabb ...
- linux文字命令窗口怎样截图,命令行中截图的小工具 - Linux就该这么学的个人空间 - OSCHINA - 中文开源技术交流社区...
Linux 桌面上有许多用于截屏的优秀工具,比如 Ksnapshot[1] 和 Shutter[2] .甚至 GNOME 桌面自带的简易截屏工具也能够很好的工作.但是,如果你很少截屏,或者你使用的 L ...
最新文章
- React-Native中的flexbox布局的使用
- 【Groovy】IntelliJ IDEA 中创建 Gradle 工程 ( Gradle 工程目录文件分析 )
- Android自动化测试 - 自动化测试工具比较
- Boost:ping的测试程序
- win10安装 MySQL安装教程
- 数据结构-第九章 内部排序-知识点总结1
- 使用IDEA 开发一个安卓HelloWorld的步骤
- ARM开发6.3.4 基础实训( 4 ) 两个 LED 显示二位数(动态显示)--LPC21XX
- C语言学习—运算符—“~”取反符号的理解
- 关于1stopt的补充说明
- mysql读写分离ppt_MYSQL主从复制和读写分离ppt课件
- 前端主流框架Vue工作原理及特性你了解吗?
- 利用动态加载实现手机淘宝的节日特效
- 使用计算机自带的wifi,电脑的自带无线网卡你知道怎么用吗?赶紧学习一下
- vue 获取当前本机ip_Vue项目启动时自动获取本机IP地址
- BTA12A-ASEMI的IGBT管BTA12A
- mybitplus name or service not known或quartz couldn‘t get host name
- Project Treble是Android升级的最终方案吗?
- android中获取context的多种方法的区别(this,getbascontext(),getApplicationcontext())
- 文本型数字转化为数值的6个公式
热门文章
- 一张图看懂阿里云网络产品【四】NAT网关
- 为啥Underlay才是容器网络的最佳落地选择
- 你的项目是否真的需要 DevOps?
- Nutanix,在转型的道路上越走越远 | 人物志
- Spark精华问答 | Spark做大规模高性能数值计算可以吗?
- vue 前期准备,项目结构
- matlab字符串数组里里固定格式的内容,字符串数组和字符数组中的文本
- 中科院信工所经验_2021中科院信息工程研究所电子信息专业考研经验指导分享...
- linux下模糊搜索命令,linux命令当前文件夹下面模糊搜索文件
- python增加一列数据_python数据怎么添加列?