Получите весь URL изображений от строки [дубликат]

Из поля WCF будет только использовать конструктора по умолчанию, Вы не можете использовать параметризованных конструкторов. Необходимо сделать, немного дополнительной работы для совершения вызова WCF параметризовало конструкторов.

Вы могли попробовать это:

, Как я передаю значения конструктору на моем wcf сервисе?

10
задан Community 23 May 2017 в 12:09
поделиться

5 ответов

Это то, что я пробовал, но не могу распечатать значение src

 $dom = new domDocument;

    /*** load the html into the object ***/
    $dom->loadHTML($html);

    /*** discard white space ***/
    $dom->preserveWhiteSpace = false;

    /*** the table by its tag name ***/
    $images = $dom->getElementsByTagName('img');

    /*** loop over the table rows ***/
    foreach ($images as $img)
    {
        /*** get each column by tag name ***/
        $url = $img->getElementsByTagName('src');
        /*** echo the values ***/
        echo $url->nodeValue;
        echo '<hr />';
    }

РЕДАКТИРОВАТЬ: Я решил эту проблему

$dom = new domDocument;

/*** load the html into the object ***/
$dom->loadHTML($string);

/*** discard white space ***/
$dom->preserveWhiteSpace = false;

$images = $dom->getElementsByTagName('img');

foreach($images as $img)
    {
        $url = $img->getAttribute('src');   
        $alt = $img->getAttribute('alt');   
        echo "Title: $alt<br>$url<br>";
    }
8
ответ дан 3 December 2019 в 13:44
поделиться

Don't do this with regular expressions. Instead, parse the HTML. Take a look at Parse HTML With PHP And DOM. This is a standard feature in PHP 5.2.x (and probably earlier). Basically the logic for getting images is roughly:

$dom = new domDocument;
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
  echo $image->getAttribute('src');
}

This should be trivial to adapt to finding images.

32
ответ дан 3 December 2019 в 13:44
поделиться

Note that Regular Expressions are a bad approach to parsing anything that involves matching braces.

You'd be better off using the DOMDocument class.

2
ответ дан 3 December 2019 в 13:44
поделиться

You assume that you can parse HTML using regular expressions. That may work for some sites, but not all sites. Since you are limiting yourself to only a subset of all web pages, it would be interesting to know how you limit yourself... maybe you can parse the HTML in a quite easy way from php.

0
ответ дан 3 December 2019 в 13:44
поделиться

Look at preg_match_all to get all matches.

0
ответ дан 3 December 2019 в 13:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: