Как найти и заменить строку на странице 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";
$ replacement_string = "<span class='someClass'>the <a href='site.com'>company</a> has been growing for the past 5 months";</span>
Поскольку это, похоже, охватывает часть узла с дочерними узлами, я бы использовал замену следующим образом:
// 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>
-element
<a href ... </a>
вы можете использовать PHP DOM, но не искать"the <a href='site.com'>company</a> has been growing for the past 5 months"
. Используйте поиск / замену строки для этого или регулярное выражение поиска / замены