короче не значит легче (упрощённый синтаксис), php |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
короче не значит легче (упрощённый синтаксис), php |
mj |
3.01.2005 3:37
Сообщение
#1
|
Adminь Группа: Администраторы Сообщений: 803 Пол: Мужской Реальное имя: Евгений Репутация: 5 |
Вот фрагмент php кода обслуживающего наш сайт...
Код return '/'.((($url = (($event = (($event = is_string($event)?$event:QSL)=='')?'':"event=$event")!='' & ($arg = is_array($_arg = $arg)?(count($arg)?implode('&', $arg):false):$arg)!==false)?"$event&$arg":$event.$arg)==''&& $_arg!=='')?'':"?$url"); кто догадаеться что он делает? (ну и опишет его логику если сможете) |
Digitalator |
3.01.2005 22:32
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: 1 |
это код для формирования url запроса GET Насколько могу судить.... проверяется собственно uri скрипта в event и переменные в arg, и после проверки (без обнаружения ошибок) формируется собственно url или возвращается пустая строка. Наверное так.. очень интересно это все записано в условной форме, я бы так не стал делать
-------------------- |
xds |
4.01.2005 4:55
Сообщение
#3
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
Тому, кто так пишет, следует почитать книгу А. Голуба "Веревка достаточной длины, чтобы выстрелить себе в ногу" (В PHP синтаксис заимствован из C).
-------------------- The idiots are winning.
|
mj |
4.01.2005 16:36
Сообщение
#4
|
Adminь Группа: Администраторы Сообщений: 803 Пол: Мужской Реальное имя: Евгений Репутация: 5 |
Цитата это код для формирования url запроса GET Насколько могу судить Ну это ты по знакомым словам догадался, хотя я и для POST запросов так же формирую url... Цитата Тому, кто так пишет, следует почитать книгу А. Голуба видимо ты плохо php знаешь или вовсе не знаешь его... я бы мог разбить всё это на 3, 5, 10 строчек, но зачем в ущерб производительности это делать? |
xds |
4.01.2005 19:10
Сообщение
#5
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
А можно писать всё в одну строчку - сэкономим на разборе переводов строки... ;)
Сложность интерпретации PHP подобной последовательности круглых скобок и операторов ? сравнима со сложностью интерпретации семантически аналогичной последовательности операторов if. В то же время, скорость интерпретации указанного кода человеком оставляет желать лучшего. Из того, что PHP - интерпретатор, не следует, что на нём можно писать как попало ("колбаской"). Впрочем, я плохо знаю, что такое компьютер или вовсе не знаю... Сообщение отредактировано: xds - 4.01.2005 19:12 -------------------- The idiots are winning.
|
Digitalator |
5.01.2005 17:10
Сообщение
#6
|
Бывалый Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: 1 |
Цитата Ну это ты по знакомым словам догадался, хотя я и для POST запросов так же формирую url... Ну извиняйте, не вам судить о моих знаниях. А для какой цели необходимо формировать адресную строку при посте (хотяб один пример из жизни)? Разбор кода: $return Код return '/'.$ret2; вернуть $ret2 с добавленным вначало слешем. $ret0 Код $arg = is_array($_arg = $arg)?($ret1):$arg Если $arg массив, то заменить его на $ret1 $ret1 Код count($arg)?implode('&', $arg):false Если массив не пуст, то его содержимое объединяется в строку через знак &, в противном случае false. $ret2 Код (($url = $ret3) ==''&& $_arg!=='')?'':"?$url" если $ret3 пусто и $_arg не пусто то вернуть $ret3 иначе вернуть $ret3 c добавленным спереди знаком вопроса $ret3 Код $ret4 !='' & ($ret0)!==false)?"$event&$arg":$event.$arg Если $ret4 ($event) не пусто и $ret0 ($arg) не ложь, вернуть слияние знаком & строк $event и $arg, иначе вернуть простое слияние строк $ret4 Код $event = ($ret5=='')?'':"event=$event" Если $ret5 непусто, то спереди к $event добавляется строка "event=" $ret5 Код $event = is_string($event)?$event:QSL если $event не строка, то заменяется константой (?) QSL итак, здесь смотится что из себя представляет arg - если массив, то объединяется занком & (если массив пуст, возвращается false), иначе берется как есть. далее смотрим на event - если не строка, то заменяем какой-то предопределнной константой, добавляется спереди строка "event=". Если event изначально пуста, то такой и остается. Далее если $arg и $event успешно обработаны (без ошибок) то они сливаются знаком & иначе сливаются без него. потом если объединенная строка, которая возвращается, с присоединенным спереди слешем, а если эта строка не пуста или если аргуметов ($arg) передано не было, то добавляется еще знак вопроса. В итоге получаем функцию, возвращающую GET запрос события event c параметром/ами arg (или без них) -------------------- |
mj |
7.01.2005 22:32
Сообщение
#7
|
Adminь Группа: Администраторы Сообщений: 803 Пол: Мужской Реальное имя: Евгений Репутация: 5 |
Цитата А для какой цели необходимо формировать адресную строку при посте <input type='hidden' name='act' value='Post' /> <input type='hidden' name='CODE' value='03' /> <input type='hidden' name='f' value='6' /> <input type='hidden' name='t' value='3668' /> <input type='hidden' name='st' value='0' /> вот такие вещи можно вставить в POST запрос... иногда даже так красивше, не знаю почему никто не совмещает GET и POST переменные... Digitalator Я знал что ты это сможешь, молодец ;) |
xds |
8.01.2005 3:25
Сообщение
#8
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
Цитата вот такие вещи можно вставить в POST запрос... иногда даже так красивше, не знаю почему никто не совмещает GET и POST переменные... Некоторые браузеры и серверы насильно фильтруют строку POST-запроса. В итоге, скрипт так и не дожидается части параметров. Подозреваю, что об этом есть какие-нибудь замечания в RFC. Сообщение отредактировано: xds - 8.01.2005 3:29 -------------------- The idiots are winning.
|
mj |
8.01.2005 14:43
Сообщение
#9
|
Adminь Группа: Администраторы Сообщений: 803 Пол: Мужской Реальное имя: Евгений Репутация: 5 |
Цитата Некоторые браузеры и серверы насильно фильтруют строку POST-запроса Может приведёшь пример? Я вот такой глюк заметил, кеш IE не различает страницы полученные GET и POST запросами... в переменной _GET в PHP находятся переменные переданные в коммандной строке, а в _POST, переменные переданные как данные типа форма... никто не обещает что данные будут именно типа форма, так что иногда в POST запросе переменные можно передать тока через строку, а значит они попадут в массив _GET параметров... |
Текстовая версия | 30.09.2024 4:05 |