Соскребая данные из URL в php, первый URL работает, но не другие, которые имеют одинаковую структуру, только id отличается - PullRequest
0 голосов
/ 04 июля 2019

Я собираю данные из следующих URL:

-e.g:http://www.example.com/?api=de&id=100
-e.g:http://www.example.com/?api=de&id=101
-e.g:http://www.example.com/?api=de&id=102
-e.g:http://www.example.com/?api=de&id=103
  1. Я могу получить прямой доступ ко всем URL-адресам и увидеть все данные в Json. формат.
  2. Я пытался без simple_html_dom.
  3. Я пытался с simple_html_dom (с file_get_contents, file_get_html).

Используя вышеуказанный метод, я могу видеть только данные "id=100", но когда я изменяю идентификатор на 101 или 102 и т. Д., Он не работает. Все URL имеют одинаковую структуру, отличается только id.

Я пытался simple_html_domfile_get_contents, file_get_html) Также без `simple_html_dom, однако в обоих случаях я получаю тот же результат, что и пустой, за исключением первого URL.

   //First Method
   $url = "http://www.example.com/?api=de&id=101";
   $json = file_get_contents($url);
   $MyData = json_decode($json, true);
   print_r($MyData); // Giving Empty Array (i.e.array())

   //Second Method
   $fileget = new simple_html_dom();
   $url = "http://www.example.com/?api=de&id=101";
   $json = file_get_html($url);
   print_r($MyData); // Giving Empty Array (i.e.array())

Но когда я установил id=100, тогда все работает хорошо. ( Здесь вывод правильный )

   // Now with id=100
   $url = "http://www.example.com/?api=de&id=100";
   $json = file_get_contents($url);
   $MyData = json_decode($json, true);
   print_r($MyData); 
   //Output is
   [{"name":"A","class":"1"},{"name":"B","class":"2"},{"name":"C","class":"3"}]

Не понимаю, почему, когда все URL имеют одинаковую структуру, работает только первый, а остальные нет.

1 Ответ

0 голосов
/ 04 июля 2019

Попробуйте установить блок try catch и вывести переменную исключения. Также попробуйте напечатать значение $ json. Вы можете быть в состоянии отследить причину проблемы

...