2011-08-25

美国人Jon写了个PiP,Python in Php项目,可以实现在php中调用python。Jon 79年出生在新泽西州,毕业于罗切斯特理工,曾于2002年合写 Professional PHP4 Programming

示例:

1. Evaluating Python Code from PHP

Result

test 1 50 60.4

test 2.208 test

2. Python Object Instantiation

# module.py

class TestClass:

def __init__(self, foo):

self.foo = foo

def returnInt(self):

return 1113

def test(self, a, b = 'str'):

return "a = %d, b = %s" % (a, b)

def returnMe(self):

return self

def returnTuple(self):

return (1, "two", 3.0)

def returnList(self):

return [1, "two", 3.0]

def returnDict(self):

d = {}

d['one'] = 1

d['two'] = 2

d['three'] = 3

return d

def p(self, var):

print var

returnInt() . "n";

print $p->test(1, 'bar') . "n";

print $p->foo . "n";

$p->foo = 987;

print $p->foo . "n";

# $copy points to the same object

$copy = $p->returnMe();

print $copy->foo . "n";

$p->foo = 987;

print $copy->foo . "n";

?>

Result

1113

a = 1, b = bar

435

987

987

987

3. Type Conversion

returnTuple());

var_dump($p->returnList());

var_dump($p->returnDict());

$a = array('one' => 1, 2, 3);

$p->p($a);

class Test {

var $member = 'test';

}

$t = new Test();

$p->p($t);

?>

Result

array(3) {

[0]=>

int(1)

[1]=>

string(3) "two"

[2]=>

float(3)

}

array(3) {

[0]=>

int(1)

[1]=>

string(3) "two"

[2]=>

float(3)

}

array(3) {

["three"]=>

int(3)

["two"]=>

int(2)

["one"]=>

int(1)

}

{'1': 3, '0': 2, 'one': 1}

{'member': 'test'}

不过,如果不采用PiP这样的方式,也可以考虑用php的system()和popen(),proc_open()来调用。

如果要执行用户脚本,一定要注意安全。可以用escapeshellarg()和escapeshellcmd()或类似preg_replace(‘/[^a-zA-Z0-9]/’, ‘’, $str)去掉无关字符。

PiP官方页面:

http://www.csh.rit.edu/~jon/projects/pip/

如非注明转载, 均为原创. 本站遵循知识共享CC协议,转载请注明来源

php里面执行python,在php中执行python相关推荐

  1. js如何运行python代码_python中执行javascript代码

    python中执行javascript代码: 1.安装相应的库,我使用的是PyV8 2.import PyV8 ctxt = PyV8.JSContext() ctxt.enter() func = ...

  2. python 执行shell 事务_python中执行shell的两种方法总结

    一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...

  3. java运行python脚本_java中执行python脚本工具类详解

    java中执行python脚本工具类,需要jython.jar import java.io.FileInputStream; import java.io.IOException; import j ...

  4. python中执行sql语句_python中执行sql语句

    来源:疯狂的蚂蚁的博客 总结和整理 本文介绍了 Python 操作 MYSQL.执行 SQL 语句.获取结果集.遍历结果集.取得某个字 段.获取表字段名....... (游标 对象)用于执行查询和获取 ...

  5. php的foreach循环执行过程分析以及循环中执行unset()的一些问题

    文章目录 一.前言 二.foreach的执行过程 1.关于版本不同的foreach变化 2.关于引用计数 3.探寻foreach的运行过程 三.foreach中执行unset()的问题 1.当我们是为 ...

  6. python中文教程-中谷python中文视频教程(全38集)

    python在线教学视频教程共40节,中谷教育录制,主要介绍了python编程方面的知识. python在线教学-01-走进python python在线教学-02-开始编程吧 python在线教学- ...

  7. python中文视频教程-中谷python中文视频教程(全38集)

    python在线教学视频教程共40节,中谷教育录制,主要介绍了python编程方面的知识. python在线教学-01-走进python python在线教学-02-开始编程吧 python在线教学- ...

  8. android studio调用python,Android studio中编写Python代码-2

    Chaquopy 教程 Chaquopy Chaquopy的作用:使用Chaquopy在Android Studio添加Python环境,java和Python互调 目前调试后APP可以正常运行(20 ...

  9. python中执行shell命令_python中执行shell命令的几个方法小结-阿里云开发者社区

    Python 执行 shell 命令 最近有个需求就是页面上执行shell命令,第一想到的就是os.system os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令 ...

最新文章

  1. 拿下斯坦福和剑桥双offer,00后的算法学习之路
  2. Java 3.基本数据类型
  3. ipadpro+打开html文件,iPadPro日常基本功能的使用技巧汇总
  4. mac bash 下使用vi 快捷方式——因为没有alt键 所以没有办法 用vi模式也非常方便的...
  5. 掌握JAVA多线程的利器-线程池
  6. CSDN安全设置需改进
  7. 会话技术Cookie
  8. 看到这一切,我忍俊不禁
  9. C++代码 快速排序总结
  10. mysql读写分离6_6\MySQL 主从同步 、 MySQL 读写分离 、 MySQL 性能调优
  11. c语言仿宋gb2312字体,仿宋gb2312字体
  12. 数字宫殿110位数字对照物
  13. SpringBoot+Vue下载文件Excel、PDF下载后打不开
  14. windows下python安装basemap,画世界地图以及根据经纬度标点
  15. CentOS Linux基本命令
  16. [激光原理与应用-65]:激光器-器件 - 多模光纤(宽频光纤)、单模光纤的原理与区别
  17. 《深入理解大数据:大数据处理与编程实践》一一1.2 大数据处理技术简介
  18. 第八章 强制类型转换
  19. python全栈指的是什么_python全栈指的是什么意思
  20. nacos访问显示404

热门文章

  1. Array,Vector,List,Deque的区别与联系【转+改】
  2. CentOS5.5环境下布署LVS+keepalived
  3. 一步一步学Silverlight 2系列(35):升级Silverlight 2 Beta 1应用程序到Beta 2
  4. 热点面试题目—Java异常
  5. java 中关键字_Java中的关键字
  6. 产品经理岗位职责说明_公司销售经理岗位职责说明书
  7. 初中计算机word试题,初中计算机会考word试题WORD11
  8. 用oracle用户登陆toad,配置Toad连接远程Oracle数据库
  9. 如何matlab导入邻接矩阵,“excel如何做矩阵“matlab中读取excle中的邻接矩阵
  10. 测试MM32F3277-MicroPython 2021-11-17 版本