ajax — url_encode с WGET в PHP?

Этот вопрос следует другой теме, которую я задавал ранее, но никто не смог помочь:

Получение M3U8 через PHP или через веб-сайт дает разные переменные сеанса

Так что теперь я пытаюсь WGET тот же сайт через PHP, но я считаю, что мне нужно кодировать URL. Когда я пытаюсь выполнить приведенную ниже команду, ничего не загружается:

<?php
exec("wget --header='Host: www.glturk.com' http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR");
?>

Я получаю пустой файл, который скачивает: «ajax.aspx-stream = live», что говорит о том, что, возможно, URL не читается правильно?

Как я могу закодировать эту ссылку? Я также попробовал:

<?php
$encoded = urlencode("http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR");
exec("wget --header='Host: www.glturk.com' $encoded");
?>

Любая идея? Я продолжаю загружать пустые файлы? Спасибо за вашу помощь!

0

Решение

локон

$url = "http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
0

Другие решения

Персонажи ? а также & имеют особое значение для оболочки, поэтому вам нужно процитировать URL.

exec("wget --header='Host: www.glturk.com' 'http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR'");

Правильная функция для экранирования аргументов оболочки escapeshellarg, не urlencode, Так что вы также можете сделать:

$encoded = escapeshellarg("http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR");
exec("wget --header='Host: www.glturk.com' $encoded");
0

По вопросам рекламы [email protected]