2010-10-12 96 views
0

這是我的功能 http://www.ideone.com/slpPePHP函數無法追加結果

如果我不使用功能

preg_match_all("{http://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}[^\s\"\\\'\<&]*}ix", $html, $marches); 
    $download = $marches[0]; 
//var_dump(); 
    $i = 0; 
    for ($i; $i <= count($download); $i++) { 
     echo "download|"; 
     $links = $download[$i]; 
     if (!eregi("avaxhome.ws|pixhost.info", $links)) { 
      echo $links . "<br/>"; 
     } 
    } 

和返回某個環節

download| 

http://www.filesonic.com/file/24394419/1851684883.rar

http://depositfiles.com/files/g6wawevha

請幫我解決它

+1

爲了幫助解決這個問題,我們需要知道它應該做的,它是做什麼的。 – 2010-10-12 08:15:41

+0

我想要回顯$ html1中的所有下載鏈接 – Thoman 2010-10-12 08:17:38

回答

2

兩個問題:

for ($i; $i <= count($download); $i++) { 

// You are re-initializing $return in the loop..overwriting it. 
    $return = "download|"; 

只需推動動初始化外循環爲:

$return = "download|"; 
for ($i; $i <= count($download); $i++) { 

而且你不應該使用<=

for ($i; $i <=count($download) 

它應該只是<。這是因爲在大小爲N的數組中,N不是有效的索引。有效索引爲0N-1

另外ereg功能家族已棄用5.3.0,所以它最好停止使用它們。您可以改用preg_match

if (!preg_match("/avaxhome\.ws|pixhost\.info/i", $links)) 

還要注意的是,在正則表達式的.需要轉義把它當作文字句:

if (!eregi("avaxhome.ws|pixhost.info", $links)) 

可以使用preg_match作爲被寫入。

Working link