CURL и magic_quotes - PullRequest
       4

CURL и magic_quotes

0 голосов
/ 07 апреля 2011

У меня проблема с 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>';

после создания запроса на публикацию скручивания:

$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\"?>

(с атрибутом version - с магическими кавычками) после этого анализатор xml умирает, сообщая, что XML-документ сформирован неправильно.

есть ли способ отключить магические кавычки только для одного скрипта, который создает этот пост-запрос?

или может быть есть другой способ обойти это?

любая помощь очень ценится !!!

Ответы [ 3 ]

2 голосов
/ 24 октября 2011

Почему бы вам не использовать base64_encode( $xmldata ) и в perl base64_decode( $incomingdata )?

Таким образом, в php нет странных символов для кодирования.

Другой способ - заменить все кавычки на 2тильды типа str_replace("'", "~~", $outgoingstring); и на входящем скрипте вы заменяете их обратно.

0 голосов
/ 07 апреля 2011

Попробуйте это:

$xml_request = str_replace("\\", "", $result);
0 голосов
/ 07 апреля 2011

Возможные шаги:

  • попробуйте stripslashes($xml_request) в вашем фактическом коде
  • в 2003 set_magic_quotes_runtime(0), возможно, помогло бы
  • .htaccess php_flag magic_quotes off возможно обернутов <Files specific.php>

Большая часть этой информации содержится в руководстве по PHP о magic_quotes

В комментариях не будет ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...