PHP анализирует tags HTML

Возможный дубликат:
Как анализировать и обрабатывать HTML с помощью PHP?

Я довольно новичок в PHP. У меня есть текст тега body на какой-либо странице в строковой переменной. Я хотел бы знать, содержит ли он какой-то тег … где указано имя тега tag1, и если это так, возьмите только этот тег из строки. Как я могу сделать это просто на PHP?

Благодаря!!

Solutions Collecting From Web of "PHP анализирует tags HTML"

Вы бы посмотрели на что-то вроде этого:

 < ?php $content = ""; $doc = new DOMDocument(); $doc->load("example.html"); $items = $doc->getElementsByTagName('tag1'); if(count($items) > 0) //Only if tag1 items are found { foreach ($items as $tag1) { // Do something with $tag1->nodeValue and save your modifications $content .= $tag1->nodeValue; } } else { $content = $doc->saveHTML(); } echo $content; ?> 

DomDocument представляет собой полный HTML или XML-документ; служит корнем дерева документов. Таким образом, у вас будет действительная разметка, и, найдя элементы по имени тега, вы не найдете комментариев.

Другая возможность – регулярное выражение.

 $matches = null; $returnValue = preg_match_all('#
  • (.*?)
  • #', 'abc', $matches);

    $matches[0][x] содержит все совпадения, такие как

  • list entry
  • , $matches[1][x] содержат только внутренний HTML, такой как list entry .

    Быстрый путь:

    Посмотрите на позицию индекса tag1, затем найдите позицию индекса / tag1. Затем отрежьте строку между этими двумя индексами. Посмотрите strpos и substr на php.net. Возможно, это не сработает, если ваша строка слишком длинная.

     $pos1 = strpos($bigString, ''); $pos2 = strpos($bigString, ''); $resultingString = substr($bigString, -$pos1, $pos2); 

    Возможно, вам придется добавить и / или вычесть некоторые единицы из $ pos1 и $ pos2, чтобы получить правду result result. (если у вас нет комментариев с tag1 внутри них, вздох )

    Правильный путь:

    Поиск html-парсеров