2015-12-03 5 views
0

Предположим, у меня есть 3 разных адреса. Все они проиллюстрированы ниже.Как проверить определенное слово в URL-адресе?

1. http://www.example.com/foo/bar/index.php?id=1 
2. http://www.example.com/bar/foo/index.php?id=1 
3. http://www.example.com/foo/contact.php 

Как я могу проверить, содержит ли данный url foo от первого параметра. Я имею в виду, как я могу получить только 1-й и 3-й URL как true и 2-й как false.

ответ

3

Метод 1: Использование parse_url():

$array = parse_url($_SERVER['REQUEST_URI']); 
$path = explode('/', $array['path']); 
if ($path[1]==='foo') 
{ 
    // Here ya go! :-) 
} 

Метод 2: Использование регулярных выражений:

if (preg_match('/^http:\/\/www\.example\.com\/foo\/.*$/', $_SERVER['REQUEST_URI']) 
{ 
    // Here ya go! :-) 
} 

https://regex101.com/r/jZ0pL1/1

+1

Спасибо за быстрый ответ. Это сработало для меня ... Ну, я отредактировал его. –

1

Для первых получить ваши параметры URL мы вам необходимо проанализировать ваш URL-адрес

$parsedUrl = parse_url($_SERVER['REQUEST_URI']); 

Теперь мы разделим его на части

$params = explode('/', $parsedUrl['path']); 

И, наконец, получить первый параметр

// Getting the second key => value pair 
$firstParam = $params[1]; 

Чтобы просмотреть все параметры

print_r($params); 
-1

Вы можете использовать parse_url() как указано ниже,

$arr = parse_url($url); 

Вы получите $arr[2]= 'foo', проверьте требуемый URL с помощью этого и это то, что вы хотите ...

+0

parse_url() вернет ассоциативный массив; поэтому '$ arr [2]' будет не определен - см. здесь: http://php.net/manual/en/function.parse-url.php –

Смежные вопросы