私はpreg_match_allのパターンに変数を含めることを試みています。私はいくつかの方法を試してきましたが、たとえパターンがエコー時に正しい場合でも、どれも動作していないようです。ここでPHPでpreg_match_allで変数を使用すると失敗しますか?
は、私が持っているものだ。(安全のために単一引用符を使用して)
最初の試行:
$pattern_areacode = '/\<a name\=\"'. $code . '\"\>'. $code . '\<\/a\>.*?(\<td\b[^>]*\> (.*?)\<\/td\>).*?<\/tr\>/';
preg_match_all($pattern_areacode, $contents, $ac_match);
問題:私は、パターンを印刷し、それがうまく見えました。それでも結果は返ってこない。 (ダブル使用)
第二の試み:
$pattern_areacode = "/\<a name\=\"$code\"\>$code\<\/a\>.*?(\<td\b[^>]*\>(.*?)\<\/td\>).*?<\/tr\>/";
preg_match_all($pattern_areacode, $contents, $ac_match);
問題:二重引用符を前に$脱出します。奇妙な。
私は自分の研究を行い、中括弧{}を使うことを含め、他の方法も試してみましたが、無駄にしました。
これを動作させるにはどうすればよいですか?
ありがとうございます!
を使用してに見て、試合はRegexとは対照的に、私は実際のHTMLパーサを使用することをお勧めしますXMLとHTMLを正規表現で解析するのはなぜ難しいのですか?](http://stackoverflow.com/questions/701166/can-you-provide-some-examples-of-why-it-is-hard-to-parse -xml-and-html-with-reg) – deceze
"それはうまく見えました" ..それは明らかにうまくいきませんでした。さもなければそれは働くだろう。 –
あなたはあなたのエスケープに少し過度に妄想的なように見えます。私はあなたが '<'または '='をエスケープする必要はないと思います。 '$ code'と' $ contents'のサンプル値を与えることができれば、私たちが手助けするのが簡単になります。 –