парсинг — поиск и замена строки в HTML с использованием PHP DOM Parser

Как вы находите и заменяете строку на html-странице, используя собственный PHP DOM Parser?

Пример строки для поиска: "the <a href='site.com'>company</a> has been growing for the past 5 months";

Например, родителем является полная HTML-страница, а непосредственным предшественником этой строки может быть <div> или же <p> например..

У этого элемента нет идентификатора или класса. Можно ли все еще найти и манипулировать им?

Там нет ничего, чтобы идентифицировать строку или ее непосредственный предшественник. Только точная строка, то есть последовательность символов, из которой состоит строка $ search_string.

Спасибо!

РЕДАКТИРОВАТЬ:

$ string_to_replace = "the <a href='site.com'>company</a> has been growing for the past 5 months";

$ replace_string = "<span class='someClass'>the <a href='site.com'>company</a> has been growing for the past 5 months";</span>

1

Решение

Поскольку это, кажется, охватывает часть узла с дочерними узлами, я бы использовал замену вот так:

// Text in $html
$find  = "the <a href='site.com'>company</a> has been growing for the past 5 months";
$find_len = strlen( $find );
$start = strpos( $html, $find );
if ( $start !== false ) {
$html = substr( $html, 0, $start )
. '<span class="someClass">' . $find . '</span>'
. substr( $html, $start + $find_len );
}

У меня нет времени, чтобы проверить это должным образом, но это может указать вам правильное направление.

PHP DOM отлично подойдет для изменения атрибута href элемента a или это содержимое (Компания). Это также должно работать, если $ find является полным содержимым <div>-элемент

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector