Как вы находите и заменяете строку на 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>
Поскольку это, кажется, охватывает часть узла с дочерними узлами, я бы использовал замену вот так:
// 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>
-элемент
Других решений пока нет …