Как проверить определенные значения в URL

Можно ли проверить, содержит ли URL-адрес определенные значения, например, если URL "www.example.com/dummy1/dummy2/dummy3/en/dummy4/tim/" имеет "en" или нет.


Спасибо

3 ответа

Решение
if (in_array('en', explode('/', $url))) { 
    ...
}

Вы можете использовать функцию strpos, которая используется, чтобы найти вхождение одной строки в другую:

КАК ЭТО

$url = 'www.example.com/dummy1/dummy2/dummy3/en/dummy4/tim/';

if (strpos($url,'en') !== false) {
    echo 'true';
}

Ответы выше могут быть тем, что вы ищете, но в дополнение к поиску вашего значения, вот как на самом деле получить URL...

$url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //example.com/dummy1/dummy2/dummy3/en/dummy4/tim/
$url = $_SERVER['REQUEST_URI']; // /dummy1/dummy2/dummy3/en/dummy4/tim/

Я предполагаю, что вы хотите знать, находится ли пользователь на странице, содержащей "en", в этом случае вам действительно не нужно проверять доменное имя, поэтому вы можете сделать что-то вроде...

$contains_en = (strpos($_SERVER['REQUEST_URI'], 'en') !== false ? true : false);

Вы должны заметить, что использование strpos также вернет true (на самом деле он вернет начальную позицию совпадения в строке), если у вас есть символьная строка en где-либо в URL, например, слово тогда вернет true, поэтому, если вы ищете /en/ вы можете либо использовать метод in_array, описанный другими пользователями, для проверки, либо просто проверить строку '/en/', используя этот метод

Другие вопросы по тегам