2011-12-30 22 views
-3

これは私に "Notice:Undefined offset:0 in \ index.php in line 12"のようなエラーを表示します。preg_match:未定義オフセット

$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

$arr[1]として '$のmatch'は、あなたがそれを使用しているように動作しません - それは、サブパターンマッチが含まれています。あなたのコードを修正する前に[PCRE documentation](http://www.php.net/manual/en/book.pcre.php)をよく読んでおくことをお勧めします。 – cmbuckley

+0

whileループは必要ありません –

答えて

0

バックスラッシュの前に:(そしておそらく二^?)

+0

正規表現に問題はないと思います。\ – beatlesfan

+0

エラー:$ matchはpreg_matchで埋められた配列です。 $ match [0]は完全一致、$ match [1]は最初のかっこ式(group)です。あなたの$ iループは4つのグループがあると仮定します。私はforeachの中で$ iループを期待していたでしょうし、あるいは$ match [0]程度であってもかまいません。 ^が始まり、2番目が$(終り)でなければならず、 "a:{3}"は3回繰り返されます。 http://php.net/manual/en/function.preg-match.phpを参照してください。 –

0

あなたは配列$ ARRを検査する

print_r($arr); 

を使用してみました、それは間違っているものを見つけるためにあなたを助けるかもしれません。

それが参照しているように見える - $arr[0]

+0

配列に問題がないようです – beatlesfan

関連する問題