2012-05-05 2 views
1

Возможно ли, что см., если пользователь запрашивает «example.com/mypage/?». или "example.com/mypage/"?Можно ли обнаружить пустой запрос?

Я хотел бы обслуживать разные контенты, если строка запроса является символом "?" присутствует в запросе. Обратите внимание, что нет имени или значения (например,? Name = value), просто символ запроса «?». Решение в python было бы превосходным, но php тоже приемлемо.

+3

Я думаю, что это плохая практика. вопросительный знак или нет, URL-адреса указывают на тот же ресурс. – akonsu

+0

КПП. Я не уверен, возможно ли это с помощью python, так как это влияет на URL-адрес скрипта php. – Ahatius

ответ

1

В PHP вы можете проверить, если REQUEST_URI заканчивается в ?. Есть три различных случая, которые могут быть вам полезны:

if('?' === substr($_SERVER['REQUEST_URI'], -1)){ 
    // Empty query string with '?' 
}else if(false === strpos($_SERVER['REQUEST_URI'], '?')){ 
    // No ? at all 
}else{ 
    // Some query string exists (check $_GET) 
} 
-1

Возьмите $_SERVER['REQUEST_URI'] и проверьте, есть ли в нем знак вопроса.

if(strpos($_SERVER['REQUEST_URI'], "?") >= 0) { 
    //Question mark found 
} 
+0

Это покажет, есть ли параметры или нет. OP ищет сценарий без параметров, только знак вопроса. –

+0

@cillosis Но вы получаете всю строку вызова после корня веб-сервера, в том числе?. Если вы вызываете url только с?, Он все равно отобразит /file.php ?. Вам просто нужно проверить, есть ли в нем знак вопроса. Кроме того, проверьте другие ответы, я не одинок с этим решением. – Ahatius

1

проверки последнего символа

if ('?' === substr($_SERVER['REQUEST_URI'], -1)) 
Смежные вопросы