1

私はこのような動的文字列を持っています:

$string1 = '<a style="background-image: url(&quot;http://someurl.com/image.jpg&quot;);" class="thumb" title="title goes here" href="http://www.someurl.com/"></a>';

私の preg_match_all コード:

preg_match('/<a style="background-image: url((.*?));" class="thumb" title="(.*?)" href="(.*?)"><\/a>/', $string1, $matches);

echo $matches['1'];
echo $matches['2'];
echo $matches['3'];

url() ブラケットが機能していません。それをエスケープする方法はありますか?

4

1 に答える 1

1

を次のようにエスケープする必要が(あり)ます\

preg_match('/<a style="background-image: url\((.*?)\);" class="thumb" title="(.*?)" href=" (.*?)"><\/a>/', $string1, $matches);

原則として、正規表現を使用して HTML ページを解析することは適切ではありません。Html の解析 クトゥルフの方法を参照してください。より良い解決策については、SOに関する多くの例があります。

于 2013-04-06T13:21:21.707 に答える