Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
返回传递 PHP 代码的结果,PHP 解释器使用上下文信息(如标头、GET/POST 数据、协议版本、请求 URL、方法等)的指定参数来解释该代码。
sa_http_php_page_interpreted( php_page , method , url , version , headers , request_body )
php_page 此 LONG VARCHAR 参数包含要解释的全部 PHP 代码,包括起始标记和结束标记(<?php 和 ?>)。
<?php
?>
method 此 LONG VARCHAR 参数包含 HTTP 请求方法(例如 GET、POST、PUT 或其它标准请求方法之一)。可使用当前 HTTP 请求中的 @HttpMethod 值来确定 method 值。
url 此 LONG VARCHAR 参数包含完整的 HTTP 请求 URL,如果存在查询字符串,还将包含查询字符串。可使用当前 HTTP 请求中的 @HttpURI 值来确定 url 值。
version 此 LONG VARCHAR 参数包含 HTTP 请求协议版本(例如,HTTP/1.1)。可使用当前 HTTP 请求中的 @HttpVersion 值来确定 version 值。
headers 此 LONG BINARY 参数包含 HTTP 请求标头,采用标准 HTTP 标头格式:Field-Name: Value\r\n。可以使用以下 SELECT 语句从当前 HTTP 请求中检索标头值:
Field-Name: Value\r\n
SELECT LIST( name || ': ' || value, CHAR(13) || CHAR(10) ) FROM sa_http_header_info();
request_body 此 LONG BINARY 参数包含二进制形式的 HTTP 请求主体。可以使用 HTTP_BODY 函数从当前 HTTP 请求中检索 request_body 的值。
此函数返回一个 LONG BINARY 值。
只有安装了 PHP 外部环境,才能使用此系统过程。
要在 Web 服务请求以外使用此系统过程,必须提供请求信息。在 PHP 代码中设置的任何标头都将丢失。
此系统过程的所有者是 DBO。但为了提高安全性,需要将 sa_http_php_page_interpreted 系统过程作为调用者执行。
无
以下示例向 PHP 解释器提交 phpinfo() 查询,然后显示 HTML 结果。
BEGIN DECLARE headers LONG VARCHAR; SELECT list( name || ': ' || value, char(13) || char(10) ) INTO headers FROM sa_http_header_info(); SELECT CAST( sa_http_php_page_interpreted( '<?php phpinfo(); ?>', http_header( '@HttpMethod' ), http_header( '@HttpURI' ), http_header( '@HttpVersion' ), headers, HTTP_BODY() ) AS LONG VARCHAR); END;