将php代码导入python

phpbridge的Python项目详细描述


这是一个运行php程序的python模块。它允许您导入php函数、类、对象、常量和变量,以便像普通python版本一样工作。

az,'bar,'foo'])
>;>php.echo("foo\n")
foo
>;>php.getimagesize("http://php.net/images/logos/new php logo.png")
数组([('0',200),('1',106),('2',3),('3',width="200"height="106"),('bits',8),('mime',image/png')))
````

SE对象:
```
>;>;php.datetime
<;php类"datetime">;
>;>;date=php.datetime()
>;>;打印(日期)
<;datetime php对象(日期='2018-05-03 22:59:15.114277',时区类型=3,时区='europe/berlin')>;
>;>;date.getoffset()
7200
>;>;php.arrayaccess
<;php接口"arrayaccess">;
>;>;issubClass(php.arrayobject,php.arrayaccess)
true
`````

>即使php不支持关键字参数,也可以使用关键字参数:
```
>;date.setdate(year=1900,day=20,month=10)
<;datetime php对象(date='1900-10-20 22:59:15.114277',时区类型=3,时区='europe/berlin')>;
````


…打印({{}{{}.format(path,file.getsize()))

.git/logs/:16
.git/logs/:144
.git/logs/head:2461
[…]
`` `


>>您可以得到帮助:
`` `
` ` `
>;帮助(php.echo)
>函数回声帮助:回声(arg1,*rest)回声(arg1,*rest)
输出一个或多个字符串。
输出一个或多个字符串。


@param mixed$arg1
@param mixed…$rest

@return void
`````

nserver\nFunctionProxy在模块phpbridge.php.blyxyz.pythonserver中:


Class blyxyz\pythonserver\nFunctionProxy(phpbridge.objects.phpobject)
提供类似函数的语言构造作为静态方法。

"isset"和"empty"不提供,因为或者一个真正的函数来检查是否定义了它的参数。
从phpbridge.objects.phpclass中提取dict;从phpbridge.objects.phpclass中提取dict;将一个值转换到数组中。


@param mixed$val


;@returnarararararararararararararararararrabject(['foo','bar','baz']]
[>>>>>;arr=php.arrayobject(['foo','bar','baz''])
>>>;arr[1[1>>>>>

是的0]="foobar"
>;>len(arr)
4
``````

>您可以使用php的异常:
````
>;尝试:
…php.get_resource_type(3)
…除了php.typeerror as e:
…print(e.getMessage())

get廑resource廑type()期望参数1是resource,给定整数
````

ative
*使用php类,如python类
*方法和常量是根据php类立即定义的
*docblocks被视为docstring,因此"help"起作用,并提供信息
*复制原始继承结构
*默认属性become python properties with documentation
*其他属性作为属性acce的回退动态访问ss
*创建和使用对象
*将命名空间作为模块导入
*获取和设置常量
*获取和设置全局变量
*转换异常,以便将它们同时视为python异常和php对象
*在解释器中完成制表符
*类似python的php对象的repr,在windows上有一个更紧凑的格式的var廑dump等信息,stdin和stderr用于通信,因此php无法读取输入,如果它写入stderr,则连接将丢失
*您只能传递基本的python对象在php中,
*名称空间可以以不直观的方式隐藏名称,因为php只有一种数组,它的数组被转换成一种特殊的有序字典

以"nikic/php parser"为例,

`phpparser\node'是一个类,但"phpparser\node\param"也是一个类。这意味着"phpbridge.php.phpparser.node"变得不明确-它可以引用"node"类,也可以引用"param"类的命名空间。

如果发生这种冲突,则首选该类而不是命名空间。要获取"param",必须使用"from"导入:
``
>;>php.require('vendor/autoload.php')
<;composer.autoload.classloader php对象(prefixlengthspsr4=[…:(4)],…>;
>;>import phpbridge.php.phpparser.node作为节点而不是命名空间!
>;>;node
<;php interface'phpparser\node'>;
>;>;来自phpbridge.php.phpparser.node import param;
>;>;param
<;php class'phpparser\node\param'>;
>;>;导入phpbridge.php.phpparser.node.param为paramoesn不起作用
回溯(最后一次调用):
文件"<;stdin>;",第1行,<;模块>;
属性错误:类型对象"phpparser\node"没有属性"param"
````

如果没有冲突,则按预期工作:
````
>;来自phpbridge.php.blyxyz.pythonserver导入命令
>;>;命令
<;php类'blyxyz\pythonserver\commands'>;
>;>;导入phpbridge.php.blyxyz.pythonserver作为pythonserver
>;>;pythonserver
<;php名称空间'blyxyz\pythonserver'>;
>;>;pythonserver.commands
<;php类'blyxyz\pythonserver\commands'>;
````

composer可用于安装开发工具和设置自动加载,但不是必需的。




欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java允许具有不同父类的类扩展类,而无需多重继承   java如何创建动态化的JScrollPane w/JPanel作为客户端?   java如何组织和命名包   在Java中读取属性文件   java无法解释的Android意图行为   在Java中动态执行多个BPEL文件的部署   ssl Java 6 SNI(服务器名称指示)?   java我们可以使用Robot框架自动化web和移动应用程序来执行并行执行   java for star pettern的循环   java为什么BinaryReader在线程中,从netty读取错误的数据包?   在java中将华氏度转换为摄氏度   使用Spark和java处理空值和引号编写CSV文件   Java中已排序日期到块的列表   visual studio代码VSCode Java不是linting或自动完成局部变量,而是自动完成Java快捷方式,如“sysout”