【问题标题】:remove javascript syntax from string [duplicate]从字符串中删除javascript语法[重复]
【发布时间】:2013-05-13 06:13:58
【问题描述】:

我正在尝试为我的网站内容编制索引,由于 <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('init', yt.www.brandpage.channels4init.overviewTabInit); yt.pubsub.subscribe('dispose', yt.www.brandpage.channels4init.overviewTabDispose); yt.setAjaxToken('c4_shelves_ajax', "0qjmgZRNi5AAlV5LrkVIKyY1_VZ8MTM2ODkyNTgzM0AxMzY4ODM5NDMz");"

我怎样才能得到它,所以它只是

“如果观看者不观看,将跳过添加到私人视频的稍后观看 可以访问,但播放列表备注是公开可见的。返回目录 添加到播放列表:如果观看者不观看,将跳过私人视频 可以访问,但播放列表备注是公开可见的。添加一个可选的 note150 添加注释 保存注释... 注释添加到: 添加注释时出错: 点击添加新笔记”

【问题讨论】:

标签: php javascript jquery


【解决方案1】:

您可以先从文本中删除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);

【讨论】:

  • 有没有办法在没有正则表达式的情况下做到这一点?只是我根本没有使用正则表达式,也不想使用。
  • 是的,但它不那么优雅。您可以通过查找所有出现的&lt;script 和所有出现的&lt;/script&gt; 来获得相同的结果,然后在之前和之后取substr 并将它们连接起来
  • 这看起来很丑。好的,谢谢。
  • 还有一个问题。为什么不能只做$text = preg_replace('/\&lt;script.*\&lt;\/script\&gt;/iU', '', $text);
  • @Yaron 你的正则表达式的问题是这样输入的:text1&lt;script&gt;var a = "&lt;/script&gt;";&lt;/script&gt;text2。它将给出text1";&lt;/script&gt;text2 而不是text1text2。这可能是 OP 的输入的样子。您不能使用正则表达式来做到这一点。
猜你喜欢
  • 2015-10-28
  • 1970-01-01
  • 2019-03-13
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
  • 2013-11-22
  • 2016-03-05
相关资源
最近更新 更多