PHP怎么接收XML对象_PHP接收XML对象的流程【实例】

admin 百科 19
PHP处理客户端XML数据需优先读取php://input流并解析,其次兼容旧版$HTTP_RAW_POST_DATA,表单提交则用$_POST,须校验Content-Type为application/xml或text/xml,并推荐DOMDocument容错解析。

PHP怎么接收XML对象_PHP接收XML对象的流程【实例】-第1张图片-佛山资讯网

如果您在PHP中需要处理客户端发送的XML数据,PHP必须正确读取并解析原始HTTP请求体中的XML内容。以下是实现该功能的具体步骤:

一、使用file_get_contents读取原始输入流

PHP默认不会将XML内容自动解析为变量,需直接读取php://input流获取原始XML字符串,这是接收外部XML对象最基础且可靠的方式。

1、在PHP脚本开头调用file_get_contents函数读取php://input。

2、检查返回值是否为空,若为空则说明未收到XML数据。

立即学习“PHP免费学习笔记(深入)”;

3、将读取到的字符串赋值给变量,如$xmlString = file_get_contents('php://input');。

4、使用simplexml_load_string或DOMDocument::loadXML对$xmlString进行解析。

二、使用$HTTP_RAW_POST_DATA(已弃用但需兼容旧环境)

在PHP 5.6及更早版本且配置allow_url_fopen=On时,$HTTP_RAW_POST_DATA可能包含原始POST数据,但该变量自PHP 5.6起被废弃,仅可在register_globals=Off且enable_post_data_reading=On的极少数遗留环境中使用

1、确认PHP版本低于5.6且php.ini中未设置always_populate_raw_post_data=-1。

2、直接访问全局变量$HTTP_RAW_POST_DATA。

3、判断其是否为非空字符串,再进行XML解析。

4、此方法在PHP 7.0+中完全不可用,必须改用php://input

三、通过$_POST接收表单提交的XML文本字段

当XML内容被包裹在HTML表单的隐藏字段或文本域中提交时,可视为普通POST参数处理,无需解析原始流。

1、确保HTML表单中存在name为xml_data的

标签: php html 编码 app curl html表单 xml解析 表单提交 php脚本

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~