Я хочу вывести сообщение, когда 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 }