Tôi không hiểu chính xác những gì bạn muốn, bởi vì nó phụ thuộc vào bao nhiêu nhóm sẽ được chụp, tôi đã thực hiện một chức năng để nắm bắt bù đắp của việc thu thập cuối cùng phù hợp vào số nhóm, theo mẫu của tôi, có 3 nhóm: nhóm đầu tiên, chụp toàn bộ và hai nhóm, nhóm phụ khác.
mẫu mã ví dụ:
$pattern = "/<a[^\x3e]{0,}href=\x22([^\x22]*)\x22>([^\x3c]*)<\/a>/";
mẫu mã HTML:
$subject = '<ul>
<li>Search Engines</li>
<li><a href="https://www.google.com/">Google</a></li>
<li><a href="http://www.bing.com/">Bing</a></li>
<li><a href="https://duckduckgo.com/">DuckDuckGo</a></li>
</ul>';
Chức năng của tôi, nó nắm bắt được bù đắp trong những yếu tố cuối cùng và bạn có khả năng để chỉ ra số lượng phù hợp:
function get_offset_last_match($pattern, $subject, $number) {
if (preg_match_all($pattern, $subject, $matches, PREG_OFFSET_CAPTURE) == false) {
return false;
}
return $matches[$number][count($matches[0]) - 1][1];
}
Bạn có thể nhận thông tin chi tiết về preg_match_all here về tài liệu chính thức.
Sử dụng mô hình của tôi ví dụ:
0 => tất cả văn bản
1 => href giá trị
2 => innerHTML
echo '<pre>';
echo get_offset_last_match($pattern, $subject, 0) . PHP_EOL; // all text
echo get_offset_last_match($pattern, $subject, 1) . PHP_EOL; // href value
echo get_offset_last_match($pattern, $subject, 2) . PHP_EOL; // innerHTML
echo '</pre>';
die();
Output là:
140
149
174
My chức năng (văn bản):
function get_text_last_match($pattern, $subject, $number) {
if (preg_match_all($pattern, $subject, $matches, PREG_OFFSET_CAPTURE) == false) {
return false;
}
return $matches[$number][count($matches[0]) - 1][0];
}
Mẫu mã:
echo '<textarea style="font-family: Consolas: font-size: 14px; height: 200px; tab-size: 4; width: 90%;">';
echo 'ALL = ' . get_text_last_match($pattern, $subject, 0) . PHP_EOL; // all text
echo 'HREF = ' . get_text_last_match($pattern, $subject, 1) . PHP_EOL; // href value
echo 'INNER = ' . get_text_last_match($pattern, $subject, 2) . PHP_EOL; // innerHTML
echo '</textarea>';
Output là:
ALL = <a href="https://duckduckgo.com/">DuckDuckGo</a>
HREF = https://duckduckgo.com/
INNER = DuckDuckGo
Hãy nêu rõ, *** TÔI CÓ NÀY VÀ TÔI CẦN OUTPUT NÀY ***, giúp chúng tôi để giúp bạn. –