这天去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 - 中文开源技术交流社区...相关推荐

  1. c语言分号的转义字符,C语言中的转义字符 - osc_9gm4ypss的个人空间 - OSCHINA - 中文开源技术交流社区...

    C语言中的转义字符 在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么.这类字符称为可显示字符,如a.b.c.$.+和空格符等都是可显示字 ...

  2. java影像出租面向对象,Java中的面向对象 - zhiruochujian的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.面向对象 面向对象和面向过程的区别 过程就是函数,就是写方法,就是方法的一种实现. 对象就是将函数,属性的一种封装.用人们思考习惯的方式思考问题. 如何自定义类 修饰符 类名{ //成员变量 修饰 ...

  3. ios 图像坐标系_iOS中理解坐标系 - Megan_zhou的个人空间 - OSCHINA - 中文开源技术交流社区...

    坐标.点和像素之间的微妙转换也可能降低绘制性能,导致线条和文字模糊.观察以下代码: CGContextSetLineWidth(context, 3.); // 绘制从坐标{10, 100}到{200 ...

  4. 直白点理解c 语言中的循环体,反射机制 小小谈 - osc_nnbkiac5的个人空间 - OSCHINA - 中文开源技术交流社区...

    反射机制(Reflection) [TOC] 写在前面 本文地址:https://www.cnblogs.com/oberon-zjt0806/p/11082012.html 这里是Oberon 本文 ...

  5. java中类型转换的造型_Java-类型转换 - 吉胖子很瘦的个人空间 - OSCHINA - 中文开源技术交流社区...

    类型转换 在实际开发过程中,存在类型转换,类型转换分为两种,自动类型转换和强制类型转换. 自动类型转换 程序编译或运行过程中,jvm可以发生自动类型转换.转换规则: [1]容量小的数据类型可以自动转换 ...

  6. java中0l 1_Java基础笔记1 - osc_0ltyoebk的个人空间 - OSCHINA - 中文开源技术交流社区...

    java 1.一元运算符:只需要一个数据就可以进行的运算符.例如 取反 ! 自增 ++ 自减-- 2.二元 运算符 :需要两个数据才可以进行操作的运算符,例如: 加法 + ,赋值 = 3.三元运算符 ...

  7. php中nodethirtythree,node常用模块 - LinearLaw的个人空间 - OSCHINA - 中文开源技术交流社区...

    nodeJS和ES6 node基本用法 (1)安装nodeJS cmd输入node -v出现node版本号,表明安装成功. (2)node中的互相调用 require("./02.js&qu ...

  8. zabbix中mysql连不上的排错_zabbix使用排错 - oschina130111的个人空间 - OSCHINA - 中文开源技术交流社区...

    在linux系统中,几乎所有运行的服务都会产生相对就的日志(log),所运行的程序在出错时都会有错误提示,即使没有任何提示也可以通过"echo $"来查看运行是否成功.使用zabb ...

  9. linux文字命令窗口怎样截图,命令行中截图的小工具 - Linux就该这么学的个人空间 - OSCHINA - 中文开源技术交流社区...

    Linux 桌面上有许多用于截屏的优秀工具,比如 Ksnapshot[1] 和 Shutter[2] .甚至 GNOME 桌面自带的简易截屏工具也能够很好的工作.但是,如果你很少截屏,或者你使用的 L ...

最新文章

  1. React-Native中的flexbox布局的使用
  2. 【Groovy】IntelliJ IDEA 中创建 Gradle 工程 ( Gradle 工程目录文件分析 )
  3. Android自动化测试 - 自动化测试工具比较
  4. Boost:ping的测试程序
  5. win10安装 MySQL安装教程
  6. 数据结构-第九章 内部排序-知识点总结1
  7. 使用IDEA 开发一个安卓HelloWorld的步骤
  8. ARM开发6.3.4 基础实训( 4 ) 两个 LED 显示二位数(动态显示)--LPC21XX
  9. C语言学习—运算符—“~”取反符号的理解
  10. 关于1stopt的补充说明
  11. mysql读写分离ppt_MYSQL主从复制和读写分离ppt课件
  12. 前端主流框架Vue工作原理及特性你了解吗?
  13. 利用动态加载实现手机淘宝的节日特效
  14. 使用计算机自带的wifi,电脑的自带无线网卡你知道怎么用吗?赶紧学习一下
  15. vue 获取当前本机ip_Vue项目启动时自动获取本机IP地址
  16. BTA12A-ASEMI的IGBT管BTA12A
  17. mybitplus name or service not known或quartz couldn‘t get host name
  18. Project Treble是Android升级的最终方案吗?
  19. android中获取context的多种方法的区别(this,getbascontext(),getApplicationcontext())
  20. 文本型数字转化为数值的6个公式

热门文章

  1. 一张图看懂阿里云网络产品【四】NAT网关
  2. 为啥Underlay才是容器网络的最佳落地选择
  3. 你的项目是否真的需要 DevOps?
  4. Nutanix,在转型的道路上越走越远 | 人物志
  5. Spark精华问答 | Spark做大规模高性能数值计算可以吗?
  6. vue 前期准备,项目结构
  7. matlab字符串数组里里固定格式的内容,字符串数组和字符数组中的文本
  8. 中科院信工所经验_2021中科院信息工程研究所电子信息专业考研经验指导分享...
  9. linux下模糊搜索命令,linux命令当前文件夹下面模糊搜索文件
  10. python增加一列数据_python数据怎么添加列?