我正在尝试索引我的网站内容,因为<body></body>
中有一些javascript,它会存储内容。
它实际上将所有内容都放在<body></body>
之间,但我使用PHP的strip_tags来删除HTML标记。
它删除了<script>
标记,因为它们是HTML标记,但javascript语法仍然存在。
如何删除javascript语法?
以下是其中包含javascript语法的内容示例:
如果观看者不这样做,将暂停观看稍后添加到私有视频 有权访问,但播放列表备注是公开可见的。返回目录 添加到播放列表:如果观看者没有,则会跳过私有视频 有权访问,但播放列表备注是公开可见的。添加一个可选项 note150添加备注保存备注...注意添加到:添加备注时出错: 单击以添加新注释if(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', “0qjmgZRNi5AAlV5LrkVIKyY1_VZ8MTM2ODkyNTgzM0AxMzY4ODM5NDMz”);“
我怎样才能得到它只是
如果观看者不这样做,将暂停观看稍后添加到私有视频 有权访问,但播放列表备注是公开可见的。返回目录 添加到播放列表:如果观看者没有,则会跳过私有视频 有权访问,但播放列表备注是公开可见的。添加一个可选项 note150添加备注保存备注...注意添加到:添加备注时出错: 点击添加新笔记“
答案 0 :(得分:2)
您可以先删除文字中的script
标记及其内容,然后在结果上运行strip_tags
可以通过多种方式删除脚本标记,其中一种是正则表达式:
$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);