перестановка параметров в url

Статус
В этой теме нельзя размещать новые ответы.

krobol

Постоялец
Регистрация
5 Июн 2008
Сообщения
455
Реакции
126
подскажите, как из строки:
$s1 = "http://site.com?p1=234p1asd&p2=34p245dw";


сделать строку ($s2 = ???:(
print $s2; // "http://site.com?p2=34p245dw&p1=234p1asd"

?
 
чето непонятно
еще раз покажи исходный материал и голяк без коментов то что хочешь получить, попробуем подсказать.
 
Можно и без регулярок Только зачем?
Порядок аргументов в запросе неважен.
 
есть:
Код:
http://site.com?p1=p1&p2=p2
http://site.com?p0=p0&p1=p1&p2=p2

нужно переставить в конец p1:
Код:
http://site.com?p2=p2&p1=p1
http://site.com?p0=p0&p2=p2&p1=p1

спасибо за
!

но потом нужно в строке параметров опять же переставить.

Переставить, чтобы параметр (например id) поставить на последнее место и добавить в нему +and+1=0

в notepad++ есть замена с помощью регулярных выражений:
^(.*p1.*)(\&.*)$
 
но потом нужно в строке параметров опять же переставить.
И в чём проблема или лень совсем одолела и хочется чтоб другие всё сделали за тебя?
Переставить, чтобы параметр (например id) поставить на последнее место и добавить в нему +and+1=0
Какая разница между
index.php?id=1+and+1=0&cat=3
и
index.php?cat=3&id=1+and+1=0
???
Для принимающего скрипта побарабану (если там специально не заморачивались с проверкой порядка аргументов).
 
тогда я разбиваю строку параметров с помощью parse_str,

хоть это уже не относится к regexp, дайте подсказку: как узнать, каким номером в массиве будет параметр с именем id ?
 
PHP:
$str = "cat=3&id=1+and+1=0";
parse_str($str, $output);
print_r($output)
получишь
Код:
Array
(
    [cat] => 3
    [id] => 1 and 1=0
)
всё просто и узнавать ничего не надо ;)
 
нет, мне нужно в строке параметр id переставить в конец и добавить к нему +and+1=0

PHP:
$url = "http://site.com?p0=p0&p1=p1&p2=p2";
$aurl = parse_url($url);
$param = parse_str($aurl["query"]);
$param["id"] .= "+and+1=0";

но как проверить наличие параметра id, ID, Id, ItemID, gid
и поставить его в конец?
 
1. зачем тебе параметр именно в конце?
2. тебя научить что такое оператор if ?
3. тебя научить собрать массив в строку ?
что из этого?
 
но как проверить наличие параметра id, ID, Id, ItemID, gid и поставить его в конец?
в самом начале приведите строку к нижнему ригистру и будет вам id маленькими буками.

поставить в конец:
удаляете элемент массива с key=id а потом собираете массив в строку и добавляете в конец что хотели.

Вам же скажали что порядок переменных в post запросе в 99% случаев не важен.
Уважьте дяду, расскажите зачем такое извращение?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху