-1

$patternの変更に注意してください

$subject = '<table width="750"  style="padding-left:150px;"><tr><td width="108"class="fieldname">First Name:</td><td width="381" class="fieldname">';

    $pattern = '/(table)/';
    $matches = array();
    echo preg_match( $pattern, $subject, $matches)."<br/>";
    echo $matches[0]."<br/>";

出力
1
テーブルを取得します

AND $ patternでテーブルの前に<を付けると、出力
1が得られます

どうして ??<テーブルを出力として取得するべきではありませんか?

4

2 に答える 2

0

preg_matchの結果をエコーすると、ブール値が得られるため、「1」が期待されます。$matches[1]と$matches[0]はどちらも「テーブル」を提供するので、それが期待されます。あなたがマッチしたいものを教えてください、そして私たちは助けることができます。

最後の引数のpreg_match&modified変数は、次のようになります。-[0]完全一致-[1]括弧間の一致

上記の答えは正しいですが、<(space)tableはブール値のFALSEを与えるはずです。上記の回答者がスペースを意図していないという仮定で正しい場合、彼の回答は正しいです。ソースではなくブラウザの出力を表示しています。

于 2012-10-20T03:07:02.113 に答える
0

取得できますが、表示されません(HTMLマークアップであり、ブラウザーはテーブルをレンダリングしようとします)。

使用する

 echo htmlentities($matches[0])."<br/>";

...一致を検査します。

于 2012-10-20T03:07:17.103 に答える