Регулярное выражение с div классами
Я использую регулярное выражение для извлечения содержимого между различными классами тегов, однако я получил вывод: нет совпадений, поэтому помощь не требуется. Я понимаю, что xpath или DOM Document был бы лучшим выбором вместо использования regex, однако мой проект требует, чтобы я использовал regex, так как xpath или DOM document повлияют на более позднюю часть проекта. Спасибо
// Read php file using curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/page1.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
$result = preg_replace("#(<\s*a\s+[^>]*href\s*=\s*[\"'])(?!http)([^\"'>]+)([\"'>]+)#",'$1http://localhost/page1.php/Выход должен быть:3', $result);
//print out page1.php file content
#echo $result;
$data = $result;
$pattern = '{<!-- populate table from mysql database -->(.*?)\</tbody>}';
#$pattern = '{<div\s+class="name"\s*>((?:(?:(?!<div[^>]*>|</div>).)++(?=<div[^>]*>(?1)</div>)*))}si';
$matchcount = preg_match_all($pattern, $data, $matches);
if ($matchcount > 0) {
for($i = 0; $i < $matchcount; $i++) {
echo("\n");
echo($matches[1][$i]);
}
} else {
echo('No matches');
}
HTML:
<tbody>
<!-- populate table from mysql database -->
<div class="student_information">
<tr>
<div class="admin"><td>140009K</td></div>
<div class="name"><td>Lee Tan</td></div>
<div class="hp"><td>96655568</td></div>
<div class="email"><td>[email protected]</td></div>
</tr>
</div>
<div class="student_information">
<tr>
<div class="admin"><td>1411111A</td></div>
<div class="name"><td>Sally Tan</td></div>
<div class="hp"><td>.</td></div>
<div class="email"><td>[email protected]</td></div>
</tr>
</div>
</tbody>
Выход должен быть:
140009K
Lee Tan
96655568
[email protected]
1411111A
Sally Tan
83954441
[email protected]
В чем дело? Нужна помощь!