#php #regex
#php #регулярное выражение
Вопрос:
У кого-нибудь есть регулярное выражение для замены следующего кода:
<a href="originalLink">hi</a>
с:
<a href="newLink">hi</a>
Ответ №1:
Пример простого синтаксического анализатора PHP HTML Dom:
// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');
// Find all links
$anchors = $html->find('a');
$count = count($anchors);
for($i=0;$i<$count;$i ) {
$anchors[$i]->href = 'someLink.html';
}
Если вы знаете href
привязку, которую хотите заменить, сделайте что-то вроде:
$html->find('a[href=something]', 0)->href = 'someLink.php';
Комментарии:
1. То же самое — это будет намного надежнее, чем синтаксический анализ HTML с регулярным выражением. Грамматика HTML просто слишком сложна и слишком слабо применяется для того, чтобы регулярные выражения реального мира могли обрабатывать все случаи.
2. Является ли file_get_html реальным методом? Я нигде не могу его найти. Какой тип объекта он возвращает?
3. Я полагаю, что это происходит из простого html 🙂