PyHP
PyHP 3.1
PYHP是一个程序包,可让您将Python代码(如PHP代码)嵌入HTML和其他文本文件中。通过Web服务器的配置或Shebang调用脚本,并通过WSGI与Web服务器进行通信。
<?pyhp和?>标签中exit和sys.exit终止脚本,而不是整个服务器atexit注册功能直到在WSGI模式下服务器关闭直到服务器关闭register_shutdown_function执行pyhp-cli命令的CLI脚本pyhp-cgi命令使用CGI脚本pyhp.wsgi.apps subpodulepyhp.wsgi.util subpoule中的工厂构建$_SERVER作为SERVER$_REQUEST作为REQUEST$_GET as GET$_POST作为POST$_COOKIE作为COOKIE$_FILES作为FILEShttp_response_codeheaderheaders_listheader_removeheaders_sentheader_register_callback带有附加replace关键字参数,以注册多个回调setcookie带有附加的samesite关键字参数setrawcookie也带有附加的samesite关键字参数register_shutdown_function带有反向回调执行订单(LIFO)opcache_compile_file会引起异常,而不是汇编失败时返回Falseopcache_invalidateopcache_is_script_cachedopcache_reset-c或--config cli参数给出的路径PYHPCONFIG环境变量指向的路径~/.config/pyhp.toml/etc/pyhp.tomlRuntimeErrorpyhp.backends中pyhp-backend或python3 -m pyhp.backends cli命令与本节向您展示了如何在计算机上安装PYHP。如果您想通过CGI在网站上使用PYHP脚本,则必须在Web服务器中启用CGI。
python3 setup.py bdist_wheel构建PYHP核Python软件包PYHPCONFIG Environ变量或将pyhp.toml复制到配置文件位置之一以使用CLI命令debian/build_deb.sh 。sudo dpkg -i python3-pyhp-core_{version}-1_all.deb安装debian软件包-i python3-pyhp-core_python3-toml和python3-werkzeug是否已安装以使用CLI命令pyhp-backend clear将在卸载或升级上执行,如果后端是缓存,请在使用包含~的文件缓存的路径时请记住这一点PYHPCONFIG ENVOREN变量设置或将pyhp.toml复制到配置文件位置之一pyhp-*命令 import sys
import re
import tempfile
from wsgiref . simple_server import make_server
from pyhp . compiler import parsers , util , generic
from pyhp . backends . files import Directory
from pyhp . wsgi . apps import ConcurrentWSGIApp
from pyhp . wsgi . proxys import LocalStackProxy
from pyhp . wsgi . interfaces . php import PHPWSGIInterfaceFactory
from pyhp . wsgi . interfaces . phputils import UploadStreamFactory
compiler = util . Compiler (
parsers . RegexParser (
re . compile ( r"<?pyhps" ),
re . compile ( r"s?>" )
),
util . Dedenter (
generic . GenericCodeBuilder ( - 1 )
)
)
interface_factory = PHPWSGIInterfaceFactory (
200 ,
[( "Content-type" , "text/html; charset= " UTF-8 " " )],
None ,
( "GET" , "POST" , "COOKIE" ),
8000000 ,
UploadStreamFactory (
tempfile . gettempdir (),
20
)
)
sys . stdout = proxy = LocalStackProxy ( sys . stdout )
with Directory ( "." , compiler ) as backend :
with ConcurrentWSGIApp ( "tests/embedding/syntax.pyhp" , backend , proxy , interface_factory ) as app :
with make_server ( "" , 8000 , app ) as httpd :
httpd . serve_forever () from wsgiref . simple_server import make_server
import toml
from pyhp . wsgi . util import ConcurrentWSGIAppFactory
config = toml . load ( "pyhp.toml" )
with ConcurrentWSGIAppFactory . from_config ( config ) as factory :
with factory . app ( "tests/embedding/syntax.pyhp" ) as app :
with make_server ( "" , 8000 , app ) as httpd :
httpd . serve_forever ()