我对cURL和magic_quotes有意见。
出于不同的原因,我无法关闭magic_quotes。但是当我创建一个CURL POST请求时,我确实需要禁用这个特性。
在这个CURL POST请求中,我传递了一个包含XML和xml开始标记的变量,如下所示:
$xml_request = ' <?xml version="1.0"?><SaleRequest> <CustomerData> <Email>alex@virtuman.com</Email> <CustomerData> <SaleRequest>';在我创建了curl post请求之后:
$url="https://my.secureserver.com/parsexmlscript.cgi";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "xml=".$xml_request);
curl_setopt ($ch, CURLOPT_HEADER, 0);
$result = curl_exec ($ch);
curl_close ($ch);在结果中:在安全的服务器第一个开始标记上接收到的请求如下所示:
<?xml version=\"1.0\"?>在这个xml解析器死后,它告诉我XML文档的格式不正确。
有没有办法只为创建此post请求的一个脚本禁用魔术引号?
或者可能有任何其他方法来绕过它?
非常感谢您的帮助!
发布于 2011-10-24 22:49:01
为什么不在perl base64_decode( $incomingdata )中使用base64_encode( $xmldata )呢?
这样,php就没有奇怪的字符要编码了。
发布于 2011-04-07 09:15:42
可能的步骤:
stripslashes($xml_request) in your actual codeset_magic_quotes_runtime(0)可能具有包装在<Files specific.php>中的php_flag magic_quotes off
其中大部分信息都在magic_quotes的PHP手册中。
评论将不会被回复。
发布于 2011-04-07 09:51:44
试试这个:
$xml_request = str_replace("\\", "", $result);https://stackoverflow.com/questions/5574701
复制相似问题