2016-08-24 5 views
0

У меня есть приложение с помощью URL-адреса, такие какPHP получить переменную из URL

/order?123 и я использую $_SERVER['QUERY_STRING'], чтобы получить переменную, но я хочу, чтобы изменить URL-адреса в более удобном для восприятия виде, как

/order/123

Как я могу получить 123?

ответ

0
$str = '/order/123'; 
echo substr($str, strrpos($str, '/') + 1); 

Попробуйте это.

2

Apache должен знать, что вы хотите запустить свой скрипт, когда такой запрос будет виден. Предполагая, что ваш сценарий назван order.php поместить это в файл .htaccess в том же каталоге, что и сценарий

RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^/order/(\d+)*$ ./order.php?id=$1 

например;/Заказ/123 рассматривается как /order.php?id=123
вы получите это значение с ..

echo $_REQUEST['id'] 
0

Вы можете разобрать $ _SERVER [ 'REQUEST_URI']:

<?php 
    $uri = $_SERVER['REQUEST_URI']; 
    $var = substr(strrchr($uri, '/'), 1); 
?> 

Как всегда, не забывайте проверять, дезинфицировать, проверять, избегать этой переменной.

0

Я предполагаю, что у вас есть ошибка в вашем /order?123 URL, я предполагаю, что он должен использовать переменные get так, чтобы /order?var=123. С этим предположением способ получить переменные из URL-адреса составляет parse_str ... вот так ...

$arrVariables = array(); 
parse_str($str, $arrVariables); 
$arrVariables['var']; 
Смежные вопросы