PHP获取<;中的内容;脚本类型=";text/javascript“&燃气轮机</脚本>;
我试图得到的内容是什么是javascript脚本标记PHP获取<;中的内容;脚本类型=";text/javascript“&燃气轮机</脚本>;,php,Php,我试图得到的内容是什么是javascript脚本标记 <script type="text/javascript"> [CONTENT HERE] </script> [此处内容] 目前我有这样的想法: $start = preg_quote('<script type="text/javascript">', '/'); $end = preg_quote('</script>', '/'); preg_match('/ '.$start.
<script type="text/javascript"> [CONTENT HERE] </script>
[此处内容]
目前我有这样的想法:
$start = preg_quote('<script type="text/javascript">', '/');
$end = preg_quote('</script>', '/');
preg_match('/ '.$start. '(.*?)' .$end.' /', $test, $matches);
$start=preg_quote(“,”/”);
$end=preg_quote(“,/”);
preg_match('/'.$start.'(.*?'.$end.'/',$test,$matches);
但是,当我转储它时,它是空的请尝试以下操作:
$test = '<script type="text/javascript"> [CONTENT HERE] </script>';
$start = preg_quote('<script type="text/javascript">', '/');
$end = preg_quote('</script>', '/');
preg_match("/$start(.*?)$end/", $test, $matches);
var_dump($matches);
$test='[CONTENT HERE]';
$start=preg_quote(“,/”);
$end=preg_quote(“,/”);
预匹配(“/$start(.*?$end/”,$test,$matches);
var_dump($matches);
输出:
array (size=2)
0 => string '<script type="text/javascript"> [CONTENT HERE] </script>' (length=56)
1 => string ' [CONTENT HERE] ' (length=16)
数组(大小=2)
0=>字符串“[CONTENT HERE]”(长度=56)
1=>字符串“[CONTENT HERE]”(长度=16)
问题实际上是
preg_match
中/
前后的空格,正则表达式要求在脚本开始标记之前有空格:
当我将该空间添加到数据中时,代码工作正常:
<?php
$test = ' <script type="text/javascript"> [CONTENT HERE] </script> ';
$matches = [];
$start = preg_quote('<script type="text/javascript">', '/');
$end = preg_quote('</script>', '/');
preg_match('/ '.$start. '(.*?)' .$end.' /', $test, $matches);
print_r($matches);
?>
将'/'
更改为'/'
也有效
…但也就是说,您应该而且。另一种方法是使用
带标签
$txt='<script type="text/javascript"> [CONTENT HERE] </script>';
echo strip_tags($txt);
$txt='<script type="text/javascript"> [CONTENT HERE] </script>';
echo strip_tags($txt);
[CONTENT HERE]