Вопрос по php, parsing, simple-html-dom – Если у вас есть проблемы с каким-либо конкретным шагом, не стесняйтесь обновить ваш вопрос и предоставить часть кода.

1

тоящее время я использую этот HTML DOM PARSER используя php:http://simplehtmldom.sourceforge.net/

Я запутался в том, как удалить и заменить выбранный атрибутhref="style.css"Хочу заменить ссылку на"index/style.css", я должен вставить только

индекс/

или заменить весь атрибут из всего HTML-кода?

почему бы не использовать нативный парсер PHP DOM? dqhendricks
что вы имеете в виду родной PHP DOM PARSER? woninana
@dqhendricks Библиотека PHP DOM предлагает довольно грубый набор функций. Есть много основных функций, которые вам нужно кодировать самостоятельно. Сторонние библиотеки - хороший вариант, если они достаточно надежны. Álvaro González

Ваш Ответ

3   ответа
1

которые в основном охватывают все, что вам нужно:

http://simplehtmldom.sourceforge.net/manual.htm

Если у вас есть проблемы с каким-либо конкретным шагом, не стесняйтесь обновить ваш вопрос и предоставить часть кода.

12

Это должно сделать это:

$doc = str_get_html($code);
foreach ($doc->find('a[href]') as $a) {
    $href = $a->href;
    if (/* $href begins with a relative URL path */) {
        $a->href = 'index/'.$href;
    }

}
$code = (string) $doc;

Вы также можете использоватьРодная библиотека DOM PHP:

$doc = new DOMDocument();
$doc->loadHTML($code);
$xpath = new DOMXpath($doc);
foreach ($xpath->query('//a[@href]') as $a) {
    $href = $a->getAttribute('href');
    if (/* $href begins with a relative URL path */) {
        $a->setAttribute('href', 'index/'.$h,ref);
    }
}
$code = $doc->saveHTML();
0
$html = str_get_html($string); 
if ($html){ // Verify connection, return False if could not load the resource
    $e = $html->find("a");
    foreach ($e as $e_element){
        $old_href = $e_element->outertext;
        // Do your modification in here 
        $e_element->href = affiliate($e_element->href); // for example I replace original link by the return of custom function named 'affiliate'
        $e_element->href = ""; //remove href
        $e_element->target .= "_blank"; // I added target _blank to open in new tab
        // end modification 
        $html = str_replace($old_href, $e_element->outertext, $html); // Update the href
    }

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