「preg_replace」を使用してすべての画像リンクを見つけるにはどうすればよいですか?正規表現を実装する方法を理解するのに苦労しています
私がこれまでに試したこと:
$pattern = '~(http://pics.-[^0-9]*.jpg)(http://pics.-[^0-9]*.jpg)(</a>)~';
$result = preg_replace($pattern, '$2', $content);
「preg_replace」を使用してすべての画像リンクを見つけるにはどうすればよいですか?正規表現を実装する方法を理解するのに苦労しています
私がこれまでに試したこと:
$pattern = '~(http://pics.-[^0-9]*.jpg)(http://pics.-[^0-9]*.jpg)(</a>)~';
$result = preg_replace($pattern, '$2', $content);
preg_replace()
、名前が示すように、何かを置き換えます。使用したいpreg_match_all()
。
<?php
// The \\2 is an example of backreferencing. This tells pcre that
// it must match the second set of parentheses in the regular expression
// itself, which would be the ([\w]+) in this case. The extra backslash is
// required because the string is in double quotes.
$html = "<b>bold text</b><a href=howdy.html>click me</a>";
preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);
foreach ($matches as $val) {
echo "matched: " . $val[0] . "\n";
echo "part 1: " . $val[1] . "\n";
echo "part 2: " . $val[2] . "\n";
echo "part 3: " . $val[3] . "\n";
echo "part 4: " . $val[4] . "\n\n";
}
Webページからすべての画像リンクを見つける別の簡単な方法は、単純なhtmldomパーサーを使用する
//URLまたはファイルからDOMを作成します
$html = file_get_html('http://www.google.com/');
//すべての画像を検索
foreach($html->find('img') as $element)
echo $element->src . '<br>';
これは、任意のWebページからすべての画像リンクを取得するための非常に簡単な方法です。