检查特定文本的URL

时间:2011-02-14 19:21:13

标签: php html drupal

假设我将网址捕获为$url = $_SERVER['REQUEST_URI'] or $_GET['q']

如果网址包含一段文字说“x”,我如何检查条件?

它需要什么样的正则表达式

5 个答案:

答案 0 :(得分:2)

如果你将preg_match与变量值一起使用,请确保使用preg_quote来转义任何特殊字符:

$look_for = "x";
if (preg_match( "/".preg_quote($look_for, "/")."/i" , $url) ) {
  ...

答案 1 :(得分:1)

您也可以使用strpos()函数

http://php.net/manual/en/function.strpos.php

这是一个例子:

$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
    echo "The string '$findme' was not found in the string '$mystring'";
} else {
    echo "The string '$findme' was found in the string '$mystring'";
    echo " and exists at position $pos";
}

答案 2 :(得分:1)

除了查找字符串的函数之外,您可能还想查看Drupal的arg()函数:http://api.drupal.org/api/drupal/includes--path.inc/function/arg/6

答案 3 :(得分:0)

我认为preg_match会很好地为您服务:

 if (preg_match( "/x/i" , $url) ) {


}

答案 4 :(得分:0)

如果您使用来自野外的网址,您可能想要使用php的parse_url(),http://www.php.net/manual/en/function.parse-url.php,这将使其易于使用。如果它是一个drupal URL你可能想要使用Drupal的arg()函数,http://api.drupal.org/api/drupal/includes--path.inc/function/arg/6,但它可能与Pathauto模块有问题