假设我将网址捕获为$url = $_SERVER['REQUEST_URI'] or $_GET['q']
。
如果网址包含一段文字说“x”,我如何检查条件?
它需要什么样的正则表达式
答案 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模块有问题