2016-01-23 3 views
0

Я пытаюсь открыть URL-адрес с закругленным концом, эхо текст на этой странице. URL-адрес отправляет параметры скрипту python и создает файл в соответствии с параметрами. Итак, я отправляю параметры функции wordpress через ajax, эти части работают, он получает параметры без какой-либо ошибки, затем я создаю url с этим и используя curlopt_url, чтобы открыть его в backend. Затем эхо-сигнал для отправки данных в ajax.CURL меняет неанглийские символы при открытии url

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 содержит не английские символы, такие как S, G, I и т.д .. Функция получает ее правильно (я могу видеть, когда я эхо $ URL вместо ответа), но в CURLOPT_URL части они меняется. Кроме того, когда я открываю браузер формы URL, он отлично работает.

+0

Неправильные настройки кодировки символов для php. В этой теме много учебников. Вы должны позаботиться о том, чтобы настроить всю цепочку инструментов для использования кодировки utf8. – arkascha

+0

Использовать urlencode ($ _REQUEST ['p2']); – devpro

+0

@arkascha Это UTF-8, я не думаю, что это источник проблемы. Все работает отлично, кроме curl –

ответ

0

От О.П. успеха комментарии Я добавляю мое решение как ответ поможет для будущих посетителей:

Вы должны использовать UrlEncode для не английских символов в URL.

$param2 = urlencode($_REQUEST['p2']); 

Примечание стороны:

Вместо того, чтобы использовать кодировку для полного использования URL-адреса на конкретной области или пары, но иногда вам нужно кодировать полный URL в специальных символах случае.

Смежные вопросы