Intereting Posts

PHP анализирует строки HTML на основе имени класса

Как я могу получить все строки с определенным именем класса, например:

<tr class="dailyeventtext" bgcolor="#cfcfcf" valign="top"> 

а затем поместить каждую ячейку в эту строку в массив?

Я использовал cURL, чтобы вывести страницу с сервера клиента.

Заранее спасибо.

 $matches = array(); $dom = new DOMDocument; $dom->loadHTML($html); foreach($dom->getElementsByTagName('tr') as $tr) { if ( ! $tr->hasAttribute('class')) { continue; } $class = explode(' ', $tr->getAttribute('class')); if (in_array('dailyeventtext', $class)) { $matches[] = $tr->getElementsByTagName('td'); } } 

На вопрос «Как я могу анализировать HTML с PHP / regex / etc» уже есть несколько ответов. Перед тем, как задать вопрос, выполните поиск. Тем не менее, вот некоторые ресурсы:

  • Как анализировать HTML с помощью PHP?
  • RegEx соответствуют открытым тегам, за исключением тегов XHTML

И моя рекомендация заключалась бы в использовании DOMDocument и DOMXPath, как показано здесь:

  • PHP взорвать строку по тегу html

SUBSTRING(page, INSTR(page, '<title>')+7,(INSTR( page, '</title>'))-(INSTR( page, '<title>')+7) )