-1

preg_match() を使用して、1000 以上のアイテムを返す XML フィード (つまり、$resp = simplexml_load_file($API);) からの文字列をチェックし、preg_match を使用して、各アイテムから少しのデータを抽出しました。 $matches に格納されていますが、preg_match が $matches に格納したものを利用する方法がわかりません

これが私が持っているものと私が試したことです。

注: print_r($matches); があります。preg パターンを変更しながら結果を確認できるようにしました。

    $matches;

        preg_match('/(?<=\s|^)[a-zA-Z]{5,19} ?-?\d\d\d\d\d\d\d\d?*(?=\s|$)/', $Apples, $matches);

            print_r($matches);

/*Note: $matches returns an array as such: Array ( [0] => Stringdata ) Array ( [0] => moreStringdata ) Array ( [0] => stillmoreStringData ) Array ( [0] => evenmoreStringData ) Array ( [0] => moreStringDataStill )... and I'm just wanting to use array[0] from each in the $results string which is output to the screen */  

    $results.= "<div class='MyClass'><a href=\"$link\"><img src=\"$linktopicture\"></a><a href=\"$linktopageaboutapples\">$matches</a></div>";

また、$results 文字列で $matches()、$matches[]、および $matches[0] を試しましたが、何も機能しません。また、配列の使用についてよく知らないので、誰かが気にしない場合は質問したいと思います。おそらく非常に初歩的なことで私をまっすぐに設定することは、私が最も感謝することであり、事前にすべてに感謝します.

4

1 に答える 1

0

関数の仕組みを理解するには、必ずpreg_match doc ページを読んでください。

1最初に、 preg_match が( の値が$Applesパターンに一致することを意味する) または (パターンに一致しない0ことを意味する) または(エラーが発生したことを意味する) を返すかどうかを確認します。$ApplesFALSE

が返されると仮定する1と、$matches[0] には、パターンに一致する $Apples 文字列の部分全体が含まれます。キャプチャ グループがある場合、最初のキャプチャ グループに含まれる一致部分は $matches[1] に、2 番目は $matches[2] に、というように見つかります。

正規表現パターンを共有できない場合、パターンにキャプチャ グループが含まれているかどうかを確認できないため、次の例を使用してみましょう。

preg_match("/key:([A-Z]+);value:([0-9]+)/", "key:ERRORCODE;value:500", $matches);

$matches[0]文字列全体がパターンに一致するため、"key:ERRORCODE;value:500"が含まれている必要があります。また$matches[1]、"ERRORCODE" が含まれて$matches[2]いる必要があり、"500" が含まれている必要があります。これは、これらの部分が完全なパターンのキャプチャ グループのパターンに適合するためです。

于 2013-11-09T20:02:10.997 に答える