2013-11-26 168 views
0

我有PHP函數從一些頁面獲取項目PHP陣列,該項目具有分頁在循環功能

function get_content($link){ 
    $string = file_get_contents($link); 
    $regex = '/https?\:\/\/[^\" ]+/i'; 
    preg_match_all($regex, $string, $matches); 

    //this is important 
    foreach($matches as $final){ 
     $newarray[] = $final; 
    } 

    if(strpos($string,'Next Page')){ //asumme the pagination is http://someserver.com/content.php?page=2 
     get_content($link); 
    } 

    return $newarray; 
} 

問:

  1. 是否有可能使用循環功能的話?

  2. 當我嘗試它,爲什麼我只得到1頁的數組?我的意思是,如果有5頁,每頁有50個鏈接,我只得到50個鏈接,當我試圖print_r的結果,而不是250

謝謝

+0

你需要做什麼樣的?使用它更容易。 – Machavity

+0

對不起,隊友,我忘了,我創建的功能是從頁面提取鏈接,頁面有分頁。假設頁面有5個頁面,所以我只獲得5次內容並將所有URL保存在「$ newarray」數組中。謝謝 – Aby

回答

1

你從來沒有設置您的遞歸值成你正在建造的主陣列。而且您根本不會更改$link以更改從中獲取數據的文件。你爲什麼要使用正則表達式來分析,而不是`$ _GET`這

if(strpos($result,'Next Page')){ //asumme the pagination is http://someserver.com/content.php?page=2 
    $sub_array = get_content($link . '?page=x'); // you need some pagination identifier probably 
    $newarray = array_merge($new_array, $sub_array); 
} 
+0

謝謝,我找到了答案 我只需要** ** array_merge功能 @Mike:是啊,我從原來的頁面需要分頁,因爲他們使用的一些「關鍵」,以識別 頁面例如:HTTP ://someserver.com/content.php?page=2&key=789234697d if(strpos($ result,'Next Page')) 這只是一個樣本過濾器,用於瞭解下一個頁面是否可用,if可用,它會處理另一個代碼來獲得「下一個網址」。 感謝Mike和Machavity的快速響應。真的很感激它。 – Aby