匹配绝对的第一个和最后一个标签



我有这样的代码:

preg_match_all('/<script>(.*)</script>/', $matches[0], $page_script);

html页:

<script>some_script_data</script>
<script>some_more_script_data</script>

我所期望的是2个这样的结果:

[
0 => "<script>some_script_data</script>",
1 => "<script>some_more_script_data</script>"
]

我得到的是:

[
0 => "<script>some_script_data</script><script>some_more_script_data</script>"
]

取第一个<script></script>之间的所有值。如何解决这个问题?

您接近了,但是需要访问略有不同的结果。看一下:

<?php
$markup = <<<HTML
<script>some_script_data</script>
<script>some_more_script_data</script>
HTML;
preg_match_all('/<script>(.*)</script>/', $markup, $scripts);
print_r($scripts);

输出为:

Array
(
[0] => Array
(
[0] => <script>some_script_data</script>
[1] => <script>some_more_script_data</script>
)
[1] => Array
(
[0] => some_script_data
[1] => some_more_script_data
)
)

最新更新