Получить все ссылки href с помощью библиотеки SimpleHTMLDom и изменить их на лету - PullRequest
1 голос
/ 03 апреля 2012

Я бы хотел получить все ссылки href в строке html и преобразовать все ссылки следующим образом:

<a href='www.google.com'>Google</a>

Изменится, чтобы выглядеть так ...

<a href='www.mysite.com/link.php?URL=www.google.com'>Google</a>

Кто-нибудь может подсказать, как мне это сделать?

<?php

require_once ( 'simple_html_dom.php');

// load the class
$html = new simple_html_dom();

// load the entire string containing everything user entered here

$string = "<html><body><base href='http://www.site.biz/clients/g/'><a href='www.google.co.uk'>Google</a><a href='http://www.yahoo.co.uk'>Yahoo</a></body></html>";
$return = $html->load($string);

$links = $html->find('a');

foreach ($links as $link) 
{
    var_dump($link);
}

?>

1 Ответ

5 голосов
/ 03 апреля 2012

Вы пробовали что-то вроде

$links = $html->find('a');

foreach ($links as $link) 
{
    if(isset($link->href))
    {
        $link->href = 'www.mysite.com/link.php?URL=' . $link->href;
    }
}

$newHTML = $html->save();

// $newHTML now contains the modified HTML
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...