1

指定された文字列から HTML イメージ タグの URL を取得しようとしています。ほとんどの場合に問題なく動作する PHP メソッドpreg_match("/src=\"([^\s\"]+)/",$body,$matches);を使用していますが、次のリンクから URL を取得するのに問題があります...

src=http://4.bp.blogspot.com/-LqmY1y4DCO0/T39EoCmzfoI/AAAAAAAACp0/TRKmdPmhJ90/s640/how+to+make+cheesecake+carrots,+orange+cheesecake+recipe,+recipes,+Easter+dessert+.jpg

誰でもこの失敗の理由を説明できますか?

4

3 に答える 3

0

DOM で読み込みますか?

$dom = new DOMDocument();
$dom->loadHTML($var);

$xpath = new DOMXPath($dom);
$img = $xpath->query('//img[@src]');

if(count($img)>0)
{
    foreach($img as $i)
        echo $i->getAttribute('src');
}
于 2012-04-07T10:31:00.710 に答える
0

テスト文字列には src= の後に " 文字がなく、正規表現はそれを想定しているため、一致しません。正規表現をテストする場合は、プログラム RegexCoach を使用することをお勧めします。これにより、一致が強調表示され、一致プロセスをステップスルーできるようになります。失敗した場所を簡単に確認できます。

于 2012-04-07T10:18:41.917 に答える
0

この正規表現で試してみてください:)

preg_match_all("/src=([^\\s]+)/", $body, $m);
print_r($a);
于 2012-04-07T14:35:04.073 に答える