Как проверить наличие параметра в URL-адресе?

Я хочу вывести сообщение, когда url включает любой параметр, начинающийся с p2 , например, во всех следующих случаях:

example.com/?p2=hello

example.com/?p2foo=hello

example.com/?p2

example.com/?p2=

Я пробовал:

 if (!empty($GET['p2'])) { echo "a parameter that starts with p2 , is showing in your url address"; } else { echo "not showing"; } 

это должно охватывать все ваши дела

 $filtered = array_filter(array_keys($_GET), function($k) { return strpos($k, 'p2') === 0; }); if ( !empty($filtered) ) { echo 'a paramater that starts with p2 , is showing in your url address'; } else { echo 'not showing'; } 

Просто перебирайте массив $_GET и добавьте условие для ключа, чтобы начать с p2 когда сопоставление делает то, что вам нужно сделать.

 foreach($_GET as $key=>$value){ if (substr($key, 0, 2) === "p2"){ // do your thing print $value; } } 

substr($key,0,2) принимает первые два символа из строки

пытаться

 if (isset($GET['p2'])) { echo "a paramater that starts with p2 , is showing in your url address"; } else { echo "not showing"; } 

самым быстрым способом является

 if(preg_match("/(^|\|)p2/",implode("|",array_keys($_GET)))){ //do stuff }