如何使用for循环使用php从url列表中提取数据

时间:2016-07-22 11:13:19

标签: php html

以下代码中的for循环无效。

 $html= @file_get_html($url);
 $job_array = array();
 foreach($html->find('a') as $link) {
  // $links=$html->find('a');
  if (strpos($link->href, '/job-category/') !== false) {
   $job_array[] = $link->href . "<br/>";
  }

  for ($a = 0; $a <= ($link->href); $a++) {
   //$page_number = 20;
   // for ($i = 1; $i <= $page_number; $i++) {
   $html2 = file_get_html($link->href);
   $response = array();
   foreach ($html2->find('div#mainContent') as $header) {
    $response[] = $header->innertext . "<br/>";
    print_r($response);
   }
  }

1 个答案:

答案 0 :(得分:0)

我认为

$link->href

不是数字,for循环不能使用非数字来比较$ a和迭代。也许你可以做到:

    $html= @file_get_html($url); 
    $job_array = array();
    $myNumberToIterateWith = 0;
      foreach($html->find('a') as $link) { 
      // $links=$html->find('a');
        $myNumberToIterateWith++; 
        if (strpos($link->href, '/job-category/') !== false) { 
           $job_array[] = $link->href . " ";
        }

      for ($a = 0; $a <= $myNumberToIterateWith; $a++) {
       //$page_number = 20;
       // for ($i = 1; $i <= $page_number; $i++) {
       $html2 = file_get_html($link->href);
       $response = array();
       foreach ($html2->find('div#mainContent') as $header) {
        $response[] = $header->innertext . "<br/>";
        print_r($response);
       }
      }

虽然我不确定你希望结果是什么。提供有关您希望使用代码完成的内容的线索很有帮助。