2011-12-30 24 views
-3

這給了我一個像「注意:未定義的偏移量:0在第12行\ index.php中」的錯誤。preg_match:undefined偏移

$arr = array('a', 'b', 'c', 'd'); 

$i=0; 
while($i<=3){ 
    foreach($arr as $value){ 
     //get data 
     $content = file_get_contents('http://www.example.com/$value'); 

     preg_match("^ y: ....^", $content, $match); 
     $string = $match[$i]; 

     $i++; 

     echo $value; 
     echo $string; 
    } 
} 
+0

'$ match'不工作,你正在使用它的方式 - 它包含的子模式匹配。我建議你在修改代碼前仔細閱讀[PCRE文檔](http://www.php.net/manual/en/book.pcre.php)。 – cmbuckley 2011-12-30 02:23:52

+0

你不需要while循環 – 2011-12-30 02:25:38

回答

0

反斜槓前:(?也許第二^)

+0

我認爲正則表達式沒有問題:\ – beatlesfan 2011-12-30 02:28:32

+0

錯誤:$ match是一個由preg_match填充的數組。 $匹配[0]將是總匹配,$匹配[1]第一個括號表達式(組)等等。您的$ i循環假定有四個組。我會期望在foreach中的$ i循環,或者甚至可能是$ match [0]左右。 ^開始,也許第二個應該是$(end),並且用「a:{3}」,則可以指示重複「a」三次。見http://php.net/manual/en/function.preg-match.php。 – 2011-12-30 16:22:58

0

您是否嘗試過使用

print_r($arr); 

檢查數組$ ARR,它可以幫助你找出什麼是錯的。

這似乎是指 - $arr[0]$arr[1]

+0

它似乎沒有數組的問題 – beatlesfan 2011-12-30 02:27:14