Предварительная замена / предварительное совпадение для href в html-ссылке?

#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 🙂