ПОЛУЧИТЬ метод в php clean URL

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

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

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

3 ответа

Решение

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

localhost/user2/file2&action=delete

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

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

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

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

$uri = $_SERVER["REQUEST_URI"];

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

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

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

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

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

echo $_GET['action']; // 'add' or 'delete'
Другие вопросы по тегам