Я пытаюсь открыть URL с помощью curl end и повторяет текст на этой странице. URL-адрес отправляет параметры скрипту Python и создает файл в соответствии с параметрами. Итак, я посылаю параметры в функцию wordpress через ajax, эта часть работает, она получает параметры без каких-либо ошибок, затем я создаю URL с этим и использую curlopt_url, чтобы открыть его в бэкэнде. Затем ответьте эхом, чтобы отправить данные в ajax.
function my_function() {
$param1 = $_REQUEST['p1'];
$param2 = $_REQUEST['p2'];
$url = "http://localhost:1234/handle?a=$param1&b=$param2";
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_URL, $url);
$store = curl_exec ($ch);
echo substr($store, 1);
curl_close ($ch); exit();
Предположим, что p2 содержит неанглийские символы, такие как ş, ğ, ı и т. Д. Функция получает это правильно (я вижу это, когда я отображаю $ url вместо ответа), но в части CURLOPT_URL они меняются.
Кроме того, когда я открываю браузер формы URL, он работает нормально.
Из комментариев успеха OP я добавляю свое решение, так как ответ поможет будущим посетителям:
Вы должны использовать urlencode для не английских символов в URL.
$param2 = urlencode($_REQUEST['p2']);
Примечание:
Вместо использования кодировки для полного URL-адреса используйте конкретное поле или параметр, но иногда вам нужно кодировать полный URL-адрес в случае специальных символов.
Других решений пока нет …