Допустим, я записываю URL-адрес как $url = $_SERVER['REQUEST_URI'] or $_GET['q'].
$url = $_SERVER['REQUEST_URI'] or $_GET['q']
Как я могу проверить условие, если в URL-адресе содержится фрагмент текста «х»?
Какое регулярное выражение будетдля этого требуется
Если вы используете preg_match со значением переменной, убедитесь, что вы используете preg_quote для экранирования любых специальных символов:
$look_for = "x"; if (preg_match( "/".preg_quote($look_for, "/")."/i" , $url) ) { ...
Вы также можете использовать функцию 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"; }
В дополнение к функциям для поиска строки, вы также можете проверить функцию arg () в Drupal: http://api.drupal.org/api/drupal/includes--path.inc/function/arg/6
Если вы работаете с URL-адресом с дикой природы, вы можете использовать php's parse_url (), http://www.php.net/manual/en/function.parse-url.php, с которым вам будет легко работать.Если это URL-адрес drupal, вы, вероятно, захотите использовать функцию arg () в Drupal, http://api.drupal.org/api/drupal/includes--path.inc/function/arg/6, но могут возникнуть проблемы с модулем Pathauto
Я думаю, preg_match будет вам полезен:
if (preg_match( "/x/i" , $url) ) { }