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 ()