PHP - Просмотр веб-ссылки - PullRequest
       2

PHP - Просмотр веб-ссылки

0 голосов
/ 25 августа 2010

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

Например, если я ввел:

"http://mywebsite.com/script.php?=43892"

скрипт будет отображать значение 43892. Я видел это на большинстве веб-сайтов, и я думаю, что это будет очень полезно иметь в моем приложении.

Спасибо,

Кевин

Ответы [ 7 ]

2 голосов
/ 25 августа 2010

Вы имеете в виду, что-то вроде

http://mywebsite.com/script.php?MyVariable=43892

? Переменные, указанные в конце URL-адреса, аналогичны доступным в массиве $ _GET. Так что, если вы посетили приведенный выше URL и на странице была строчка с надписью

echo $_GET['MyVariable'];

тогда будет отражено 43892.

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

0 голосов
/ 25 августа 2010

Я рекомендую parse-url для этого.Документация содержит все, что вам (я думаю) нужно.

0 голосов
/ 25 августа 2010

Прежде чем я действительно отвечу на ваш вопрос, я просто должен сказать, что большинство сайтов - по крайней мере, которые я видел - на самом деле используют ?43892 с =. На мой взгляд, это также намного проще, чем использовать его с =.

Итак, теперь к фактическому ответу. Вы можете просто добавить строку запроса , используя $_SERVER['QUERY_STRING'].

Пример:

Пользовательские запросы index.php?12345:

<?php
echo $_SERVER['QUERY_STRING'];
?>

Выход:

12345

Обратите внимание, что вы также можете использовать что-то вроде

<?php
if(substr($_SERVER['QUERY_STRING'], 0, 1) == '=') {
  $query_string = substr($_SERVER['QUERY_STRING'], 1);
}else{
  $query_string = $_SERVER['QUERY_STRING'];
}
echo $query_string;

для поддержки ?=12345, а также 12345, с тем же результатом. Также обратите внимание, что ?=12345 также не будет доступен как $_GET[''].

0 голосов
/ 25 августа 2010

Попробуйте вручную разобрать URL как этот

$ geturl = $ _SERVER ['REQUEST_URI'];

$ spliturl = explode ("?", $ Geturl);

$ прибудут = взорваться ("=", $ spliturl [0]);

echo $ get [1];

:)

0 голосов
/ 25 августа 2010

Разве вы не имеете в виду http://mywebsite.com/script.php?43892?

Вы можете либо переписать URL-адрес apache, либо попытаться извлечь все записи из $ _GET и выглядеть так, чтобы они выглядели как число или просто не имелизначение.

0 голосов
/ 25 августа 2010

Обычно вы используете параметры запроса, назначая их как http://mywebsite.com/script.php?var1=123&var2=234

Тогда вы сможете получить к ним доступ с помощью $_GET['var1'] и $_GET['var2'] в своем скрипте PHP

0 голосов
/ 25 августа 2010
echo filter_var($_SERVER['QUERY_STRING'], FILTER_SANITIZE_NUMBER_INT);

Санитария состоит в том, что в вашем примере строка запроса =43892, а не 43892.Используемый фильтр "удалить [s] все символы, кроме цифр, плюс и минус" .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...