使用php检查字符串中的脚本标记

时间:2013-06-27 11:31:05

标签: php regex preg-match

我想检查网址中的脚本标记

例如:    如果url有脚本标记,则下面的senario工作正常..

<?php
 $url = 'admin/content/test/<script>';
 preg_match('<script>', $url, $match);
 if (count($match) >= 1) {
  print 'It executes';
 }
?>

输出:It executes

但是在我的情况下,如果url有一个字符串“product_description”,那么上面的条件匹配

<?php
  $url = 'admin/content/product_description/test';
  preg_match('<script>', $url, $match);
  if (count($match) >= 1) {
   print 'It executes';
  }
?>

输出:执行

请建议检查网址中脚本标记的正确方法..

2 个答案:

答案 0 :(得分:0)

尝试使用strpos代替preg_match

if (strpos($url,'<script>') !== false) {
   print 'It executes';
}

您可以在此处获得此功能的手册:documentation

答案 1 :(得分:0)

你必须把正则表达式放在分隔符中:

preg_match('/<script>/', $url, $match);

您的版本有效,因为<>对被视为分隔符,它与以下内容相同:

preg_match('/script/', $url, $match);

它匹配script和de script离子