Regex &

6 Cevap php

PHP ile nasıl $ foo src özniteliği içeriğini ayırabilirsiniz? Ben arıyorum sonuç bana sadece "http://example.com/img/image.jpg" verecek

$foo = '<img class="foo bar test" title="test image" src="http://example.com/img/image.jpg" alt="test image" width="100" height="100" />';

6 Cevap

Eğer regex (veya herhangi bir standart olmayan PHP bileşenlerini) kullanmak istemiyorsanız, aşağıdaki gibi, yerleşik DOMDocument class kullanarak makul bir çözüm olacaktır:

<?php
    $doc = new DOMDocument();
    $doc->loadHTML('<img src="http://example.com/img/image.jpg" ... />');
    $imageTags = $doc->getElementsByTagName('img');

    foreach($imageTags as $tag) {
        echo $tag->getAttribute('src');
    }
?>
// Create DOM from string
$html = str_get_html('<img class="foo bar test" title="test image" src="http://example.com/img/image.jpg" alt="test image" width="100" height="100" />');

// echo the src attribute
echo $html->find('img', 0)->src;

http://simplehtmldom.sourceforge.net/

Ben bu kod var:

$dom = new DOMDocument();
$dom->loadHTML($img);
echo $dom->getElementsByTagName('img')->item(0)->getAttribute('src');

Tek img olduğunu varsayarsak: P

Bu desen deneyin:

'/< \s* img [^\>]* src \s* = \s* [\""\']? ( [^\""\'\s>]* )/'

Ben bu nasıl verimli konusunda emin değilim, ancak burada, ben yapıyor sona budur:

$imgsplit = explode('"',$data);
foreach ($imgsplit as $item) {
    if (strpos($item, 'http') !== FALSE) {
        $image = $item;
        break;
    }
}