ПОЛУЧИТЬ метод в php clean URL - PullRequest
1 голос
/ 16 августа 2011

Я успешно создал чистый URL для своего проекта .. теперь мне нужно добавить переменные в URL ..

localhost/user1/file?action=add
localhost/user2/file2?action=delete

, где пользователь и файл уже переписаны, я не хочу, чтобы это было похожеlocalhost/user/file/add потому что localhost/user/folder/file будет ошибочно принят за параметр действия .., пожалуйста, помогите

Ответы [ 3 ]

1 голос
/ 16 августа 2011

Попробуйте использовать амперсанд вместо вопросительного знака:

localhost/user2/file2&action=delete

В вашем htaccess правило переписывания может выглядеть примерно так:

RewriteRule ^user([0-9]+)/file([0-9]+)$ /page\.php?user=$1&file=$2

Как видите, вопросительный знак уже есть, хотя он замаскирован в адресной строке. Добавление другой переменной к строке запроса потребует амперсанда для успешной конкатенации.

0 голосов
/ 16 августа 2011

Вам необходимо получить URL-адрес и начать его анализ с вопросительного знака. Затем я бы сохранил содержимое в массив, чтобы у вас был ключ и значение.

$uri = $_SERVER["REQUEST_URI"];

$questionMark = explode('?',$uri);

$ questionMark [1] - это действие = удалить тогда. Возможно, есть более эффективные способы, чем использование метода explode (), но я просто хотел показать, как вы получаете строку.

0 голосов
/ 16 августа 2011

Вы можете прочитать переменные GET в PHP, обратившись к глобальному массиву $ _GET:

http://php.net/manual/en/reserved.variables.get.php

В вашем примере файл php, используемый для обработки файлов, сможетчитать в:

echo $_GET['action']; // 'add' or 'delete'
...