2016-07-22 105 views
0

下面的代码中的for循环无法正常工作。如何使用for循环从php列表中提取数据使用php

$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); 
    } 
    } 
+0

你有什么错误吗? –

+2

也许你应该更详细地解释你的意思是“不起作用” – RamRaider

+0

欢迎来到Stack Overflow!我尽可能地猜测你的问题,然后编辑你的问题。但是,请添加对代码和说明的解释,以便让更多具有该主题知识的人员看到它。如果需要识别特定问题,请编辑您遇到的特定错误消息。祝你好运! – manetsus

回答

0

我觉得

$link->href 

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

$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); 
     } 
     } 

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

+0

@dolyanne有没有帮助? – Kyrre