Я хочу подражать, используя CURL с PHP, работу веб-сайта, который извлекает данные с помощью AJAX POST.cURL с PHP и JSON
Обычно, когда я просматриваю запросы POST с использованием Firebug, вы увидите пары переменных/значений, но в этом случае вы видите только одну строку JSON. Например.
{"refId":"14536"}
Есть ли способ имитировать этот запрос с использованием CURL? Я посмотрел на CURL, но насколько я вижу, параметр CURLOPT_POSTFIELDS должен быть строкой запроса, состоящей из одного или нескольких имен/значений.
Вот мой тестовый код с обычным запросом POST с использованием одной пары имя/значение. Я хотел бы изменить его, чтобы сделать это.
$curlOptions = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
CURLOPT_CONNECTTIMEOUT => 600, // timeout on connect
CURLOPT_TIMEOUT => 600, // timeout on response
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => 'var1=113',
CURLOPT_URL => "http://localhost/t4.php"
);
$curlCh = curl_init();
curl_setopt_array($curlCh, $curlOptions);
$fileContents = curl_exec($curlCh);
$curlErr = curl_errno($curlCh);
$curlErrmsg = curl_error($curlCh);
if($curlErr) echo "CURL ERROR:</b> $curlErr $curlErrmsg";
echo $fileContents; //check worked
curl_close($curlCh);
Вы пытаетесь сделать это асинхронно внутри уже загруженной странице? Если вы имеете в виду * буквально * имитировать ajax, вам нужно будет использовать Javascript AJAX для создания взаимодействия на стороне клиента. Сценарий на стороне сервера не сможет заменять элементы DOM по требованию без обновления страницы. – DeaconDesperado
@DeaconDesperado. Нет, я просто хочу, чтобы CURL возвращал те же данные, что и AJAX. – spiderplant0