从字符串中删除javascript语法

remove javascript syntax from string

本文关键字:javascript 语法 删除 字符串      更新时间:2023-09-26

我试图索引我的网站的内容,因为<body></body>里面有一些javascript,它存储的内容,以及

它实际上得到了<body></body>之间的所有内容,但我使用PHP的strip_tags来删除HTML标签。

它删除了<script>标签,因为它们是HTML标签,但javascript语法保留。

如何删除javascript语法?

下面是包含javascript语法的内容示例:

"稍后观看添加到私人视频将被跳过,如果观众不这样做有访问权限,但播放列表注释是公开可见的。返回列表添加到播放列表:私人视频将被跳过,如果观众没有有访问权限,但播放列表注释是公开可见的。添加可选的note150添加注释保存注释…注释添加到:添加注释错误:如果(window.ytcsi) {ytcsi.tick("js_head");}yt.pubsub.subscribe("初始化",yt.www.brandedpage.channels4init.overviewTabInit);yt.pubsub.subscribe("处理",yt.www.brandedpage.channels4init.overviewTabDispose);yt.setAjaxToken("c4_shelves_ajax","0 qjmgzrni5aalv5lrkvikyy1_vz8mtm2odkyntgzm0axmzy4odm5ndmz");"

我怎样才能使它刚好

"稍后观看添加到私人视频将被跳过,如果观众不这样做有访问权限,但播放列表注释是公开可见的。返回列表添加到播放列表:私人视频将被跳过,如果观众没有有访问权限,但播放列表注释是公开可见的。添加可选的note150添加注释保存注释…注释添加到:添加注释错误:点击添加新注释

您可以首先从文本中删除script标记及其内容,然后在结果

上运行strip_tags

可以通过多种方式删除script标签,其中之一是正则表达式:

$pattern = '/'<script.*'<'/script'>/iU'; //notice the U flag - it is important here
$text = preg_replace($pattern, '', $text);
$text = strip_tags($text);

另一种方式(不使用REGEX但不太优雅):

while(($pos = stripos($text,"<script"))!==false){
    $end_pos = stripos($text,"</script>");
    $start = substr($text, 0, $pos);
    $end = substr($text, $end_pos+strlen("</script>"));
    $text = $start.$end;
}
$text = strip_tags($text);