[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: $_GET и foreach
MadChild
Добрый день.
Есть такая задача: передается запрос $_GET и необходимо проверить какие поля являются пустыми, удалить их и тем самым укоротить строку в адресной строке
Пройтись по всем поля foreach можно, но вот как узнать к какому именно параметру принадлежит?!

то есть есть запрос

?post=1&id=&itemid=&page=2

foreach($_GET as $val){
if(empty($val)){
//Тут надо как то узнать имя параметра, например id или itemid
}
}
killer8080
foreach($_GET as $key => $val){
ИНСИ
Цитата
if(empty($val)){

В php <= 5.4 (кажется до этой сборки), данная функция (empty) не сработает как надо.
Если будет значение 0, интерпретатор будет считать пустой переменную.

Если заботишься о производительности, желательно пройти немного по другому:
$_GET = ['name' => 'ИНСИ']; // если php не поддерживает, данный синтаксис: array('name' => 'ИНСИ');
foreach ($_GET as &$val) {
if ($val != '') {
$val = 'ИНСИ PHP';
}
}

var_dump($_GET);
bestxp
вопрос как ты укоротишь адресную строку?)

или ты потом будешь делать редирект? Только вопрос зачем?
у тебя еще есть $_SERVER['QUERY_STRING'] где так же продублирована строка запроса если на то пошло
Valick
Цитата
вопрос как ты укоротишь адресную строку?

речь скорее всего о формировании ссылок с параметрами, если нет, то беда)

_____________
Стимулятор ~yoomoney - 41001303250491
MadChild
ИНСИ, да знаю такую багу и поэтому по полнйо проверяю переменную, а тут написал для примера

Valick, Вы абсолютно правы - для формирования ссылок с параметрами

А так killer8080 спасибо, ответил на вопрос, за что получил плюсик в репу
killer8080
Цитата (MadChild @ 17.09.2014 - 18:25)
ИНСИ, да знаю такую багу и поэтому по полнйо проверяю переменную, а тут написал для примера

вообще то это не баг, а штатное поведение функции
http://ua2.php.net/manual/ru/function.empty.php
Цитата
Следующие значения воспринимаются как пустые:
"" (пустая строка)
0 (целое число)
0.0 (дробное число)
"0" (строка)
NULL
FALSE
array() (пустой массив)
var $var; (переменная объявлена, но не имеет значения в классе)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.