私はJoomlaの中で、物品からの最初の画像を抽出し、このコードを持っている: エキスJoomlaの記事からすべての画像
<?php preg_match('/<img (.*?)>/', $this->article->text, $match); ?>
<?php echo $match[0]; ?>
は記事だけではなくで利用可能なすべての画像を抽出する方法はあります1?
私はJoomlaの中で、物品からの最初の画像を抽出し、このコードを持っている: エキスJoomlaの記事からすべての画像
<?php preg_match('/<img (.*?)>/', $this->article->text, $match); ?>
<?php echo $match[0]; ?>
は記事だけではなくで利用可能なすべての画像を抽出する方法はあります1?
最初に正規表現を使用しないでHTMLを解析することをお勧めします。 libxmlを使用するappropiate parser(DOMDocument::loadHTMLなど)を使用する必要があります。
次に、必要なタグを問い合わせることができます。これは次のように動作します(テストされていません):
$doc = new DOMDocument;
$doc->loadHTML($htmlSource);
$xpath = new DOMXPath($doc);
$query = '//img';
$entries = $xpath->query($query);
foreach ($entries as $entry) {
// $entry->getAttribute('src')
}
preg_match_allを使用してください。そして、あなたはimgタグの中の末尾の '/'を考慮に入れるようにパターンを修正したいでしょう。
$str = '<img src="asdf" />stuff more stuff <img src="qwerty" />';
preg_match_all('/<img (.*?)\/>/', $str, $matches);
print_r($matches);
Array
(
[0] => Array
(
[0] => <img src="asdf" />
[1] => <img src="qwerty" />
)
[1] => Array
(
[0] => src="asdf"
[1] => src="qwerty"
)
)
でそれらをクリアしません。属性にアクセスできるのでこのアプローチが好きです。あなたも最初に答えたので勝ちます。 Thanx – themis
私はもう一度使ったことに言及するだけです。悪い私は再びまた好きではない:P – themis