Различные теги div, использующие регулярное выражение в php

В html-форме:

<div class="student_information"> <tr> <div class="admin"><td>141201A</td></div> <div class="name"><td>Sally</td></div> <div class="hp"><td>83556112</td></div> <div class="email"><td>141201A@gmail.com</td></div> </tr> 

 Output I wanted: 141201A Sally Tan 83556112 141201A@gmail.com 

Я хочу получить контент между div и td. Я понимаю, что есть другие варианты, такие как xpath и DOM Document, которые были бы более подходящими, однако мой проект требовал от нас использования регулярного выражения в php, иначе это повлияет на более позднюю часть проекта, поэтому любые действия необходимы. благодаря

Solutions Collecting From Web of "Различные теги div, использующие регулярное выражение в php"

Использовать preg_replace ()

 <?php $str = '<div class="student_information"> <tr> <div class="admin"><td>141201A</td></div> <div class="name"><td>Sally</td></div> <div class="hp"><td>83556112</td></div> <div class="email"><td>141201A@gmail.com</td></div> </tr>'; $content = preg_replace('/<[^>]*>/', '', $str); $content = trim(preg_replace('/\s\s+/', ' ', str_replace("\n", " ", $content))); $arr = explode(' ', $content); if (! empty($arr)) { foreach ($arr as $elem) { echo $elem . "<br/>"; } } ?> 

Вывод:

 141201A Sally 83556112 141201A@gmail.com 

Использовать php strip_tags ()

 <?php $str = '<div class="student_information"> <tr> <div class="admin"><td>141201A</td></div> <div class="name"><td>Sally</td></div> <div class="hp"><td>83556112</td></div> <div class="email"><td>141201A@gmail.com</td></div> </tr>'; $strpped = strip_tags ($str); $strpped = trim(preg_replace('/\s\s+/', ' ', str_replace("\n", " ", $strpped))); echo $strpped; ?> 

Вывод:

 141201A Sally 83556112 141201A@gmail.com 

Для удаления html-тегов используйте php strip_tags ()

Вы можете использовать preg_match_all (как он использует regex) следующим образом:

 <?php $str = '<div class="student_information"> <tr> <div class="admin"><td>141201A</td></div> <div class="name"><td>Sally</td></div> <div class="hp"><td>83556112</td></div> <div class="email"><td>141201A@gmail.com</td></div> </tr>'; preg_match_all('/<td>[a-zA-Z0-9.@]+<\/td>/', $str, $matches); print_r($matches[0]); 

Результат:

 Array ( [0] => 141201A [1] => Sally [2] => 83556112 [3] => 141201A@gmail.com )