我有这样的代码:
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
)
)