Как исправить: возврат curl в Windows или проблема с Android

#php #android #windows #curl #video

#php #Android #Windows #curl #Видео

Вопрос:

Я использую curl php в Windows и Android. на Windows PHP версии 5.6.39 / curl 7.59.0 на Android PHP версии 5.6.35 / curl 7.34.0

Я использую php curl для извлечения видеосвязи с сайта. Мой код:

 $ua=$_SERVER['HTTP_USER_AGENT'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $l);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION  ,1);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$html = curl_exec($ch);
curl_close($ch);
  

в результате у меня есть

 $video_link_windows="http://....../video.mp4";
$video_link_android="http://...../video.mp4";
  

Это работало до 2 недель назад.
Теперь ссылка, созданная в Windows, работает как в Windows, так и в Android,
но ссылка, созданная на Android, больше не работает.
Мы уже сталкивались с этой проблемой на 3 сайтах.

Я попытался изменить «агент пользователя», я добавил «cookie», но, похоже, ничего не работает. Я пробовал без

 curl_setopt($ ch, CURLOPT_FOLLOWLOCATION, 1); 
  

или добавьте заголовок curl_setopt

 curl_setopt($ ch, CURLOPT_HTTPHEADER, $head)
  

Сгенерированные ссылки кажутся идентичными, но не работают.

НО, если я использую вместо curl, я использую file_get_contents

 $html=file_get_contents($l);
  

все возвращается в нормальное русло.

Что может быть не так или что я должен добавить в код curl?

Комментарии:

1. Не выключайте CURLOPT_SSL_VERIFYPEER

2. Если file_get_contents работает, почему бы вам просто не использовать его? Это, безусловно, чище.

3. true или false, результат тот же. curl возвращает код, но результат отличается. Я хочу использовать curl, потому что он быстрее, и, более того, я хочу понять, что не так.