кстати, нащщет куков
есть большое отличие - в пхп куки по сути встроены в езык, а в питоне - это просто библиотека.
чтобы условия были равные - на питоне нужно решение без использования библиотек )
Ты тему читаешь? Уже 3 или 4 решения привели разной степени навороченности, а ему все не так. Я не пойму, вам то надо обрабатывать ошибки так шо пиздец, то вот уже оказывается это некогда делать. Определитесь что-ли.
HelloWorld сказав(ла):читайте таки внимательнее.. решение было приведено.
dr_mousefly сказав(ла):иногда даже на это времени нет... )))
зачем проверять. пусть хакают. нам не жалко.
А знаете, это так забавно, когда человек с достаточно поверхностными знаниями, а вы это уже неоднократно доказали, рассуждает о безопасности. Продолжайте, это умиляет.
но так и не привел ни одного примера, к нему собсно и обращаюсь.
трындел о проблеме вывода индекса массива
try {
@$ids = array_map(function($p){static $index = 0; $index++; if (is_numeric($p) && intval($p) == $p) return intval($p); else throw new Exception("The element #{$index} is crap");}, explode(',', $_COOKIE['integers']));
} catch (Exception $e) {
exit ("Uh oh! {$e->getMessage()}");
}
Да какая блять разница на каком языке писать?
есть большое отличие - в пхп куки по сути встроены в езык, а в питоне - это просто библиотека.
чтобы условия были равные - на питоне нужно решение без использования библиотек )
А именно: где я говорил что меня заставляют писать говнокод?
марать руки о пхп? о нет о нет
Привет из Стамбула, ботаники
разница вобщем-то в производительности труда.
try {
@$ids = array_map(function($p)
{
static $index = 0;
$index++;
if (is_numeric($p) && intval($p) == $p)
return intval($p);
else
throw new Exception("The element #{$index} is crap");
},
explode(',', $_COOKIE['integers']));
}
catch (Exception $e) {
exit ("Uh oh! {$e->getMessage()}");
}
try:
integers = map(int, COOKIE.get("integers").split(","))
except (ValueError, AttributeError):
integers = [1,2,3,4]
COOKIE["integers"] = ",".join(map(str, integers))
Давайте я просто рядышком оставлю пайтоновский вариант, чтоб наглядно было:
Тоесть по-твоему эту кашу можно юзать в живом проекте?
Если кто еще сомневается что ПХП гавно -- может например создать топик вроде "решаем типовые веб задачки на разных языках"
ненаглядно.
будет наглядно, когда у тебя появится вывод порядкового номера инвалидного элемента.
integers = map(int, COOKIE.get("integers").split(","))
Тащемта у тебя скрипт упадет (ага, exit)
В случае ошибки в трейсбеке можно будет найти проблемный элемент.
Какое же говно ваше ПХП -- 15 строчек против одной
Код:integers = map(int, COOKIE.get("integers").split(","))
map(function, iterable, ...)
Apply function to every item of iterable and return a list of the results.
array array_map ( callback $callback , array $arr1 [, array $... ] )
array_map() returns an array containing all the elements of arr1 after applying the callback function to each one.
ага, будешь как дурак глазками искать среди 100500 элементов. нуну.
Тащемта у тебя скрипт упадет (ага, необработанное исключение) если кука неправильная, а должен установить правильную куку и продолжить работать.
Но если очень хочется, то вот пайтоновский вариант аналогичный твоему ПХПшному:
Ну почему? Почему никто не может просто взять и написать аналогичный код, без всяких "кабы" да "если"?
Ну допустим ты знаешь проблемный индекс, скажем это 42. При этом самой куки у тебя нету.
Куда в таком случае можно засунуть это 42? Это риторический вопрос.
dr_mousefly сказав(ла):так уж и быть...
не вижу никакой проблемы. всего-лишь немного дорабатываем вышеприведенный пример:
PHP:try { @$ids = array_map(function($p){static $index = 0; $index++; if (is_numeric($p) && intval($p) == $p) return intval($p); else throw new Exception("The element #{$index} is crap");}, explode(',', $_COOKIE['integers'])); } catch (Exception $e) { exit ("Uh oh! {$e->getMessage()}"); }
dr_mousefly сказав(ла):ага, будешь как дурак глазками искать среди 100500 элементов. нуну. как только не прогнешься под философский камень.
Допустим это работает, но выглядит просто отвратно и нечитабельно. if, else, return, throw - в одну строчку, я бы за такое руки отбивал.
А поиском по логу пользоваться религия не позволяет? Или опять будем утверждать что индекс массива это мегаполезная инфа при отладке?
Тоесть по-твоему эту кашу можно юзать в живом проекте?
м.б. потому что ты не можешь его прочесть? полностью аналогичный твоему без всяких "кабы" да "если" уже был.
а чего куки нету? мыши съели??
вовсе не риторический. и на него уже был ответ:
https://www.kharkovforum.com/showpost.php?p=16823269&postcount=161
Помню видел в метро рекламу витаминов для укрепления памяти. Звучит конечно дико, но если с памятью провалы, то почему не попробовать?
я понимаю, что Вы в который раз применяете метод подводной лодки, но все-таки в чем же разница между map и array_map?
так я с самого начала об этом. я ж не виноват, что поциенту надо в одну строчку.
ну нашел ты по логу где стоит "какашка". дальше будем считать запятые на пальцах?
а если это нужно вообще не для отладки?
Почему никто не может просто взять и написать аналогичный код, без всяких "кабы" да "если"?
вашу тоже нельзя
во-первых, у вас два строковых литерала - имя куки и запятая, которые должны были бы быть вынесены в константы.
потом, если будете применять это решение повторно через CTRL+C CTRL+V - возникнет дублирование кода.
вместо "во-вторых" было использовано слово "потом" с запятой после оногово-первых -- нашел к чему придраться, ок.
во-вторых -- если есть во-первых, то что во-вторых?
об этом и было написано. вы вообще читаете посты или так, на первые пару фраз хватает, а потом внимание рассеивается?Применять решение через копипаст, это в ПХП такое практикуют? Про dry не слышали?
"во-первых" относилось к Excessive use of literals, а "во-вторых" - к Duplicated code. что более подробно было описано в последующем абзаце.
Мммм я не понимаю к чему вопрос. Это вопрос с подвохом?
Считать на пальцах... ну это какойто ПХПшный подход.
Я сразу вижу проблемный элемент, и даже не нужно ничего курить чтобы понять что это за элемент, и почему он проблемный.
Нет, просто ты забыл ее вывести. Перечитай свою писанину.
от вопроса не уходим. в чем же разница между функциями map в python и array_map в php?
Отвечу вопросом на вопрос: у тебя есть этот файл (85 килобайт куков окхо, хо. сколько неправильных чисел в атачменте и какие их порядковые номера?
так и ты тоже. перечитайте свою писанину.
Но если очень хочется, то вот пайтоновский вариант аналогичный твоему ПХПшному:
Отвечу вопросом на вопрос: у тебя есть этот файл (85 килобайт куков ок) и индексы проблемных элементов. Что дальше?
что Вас тогда не устраивает? просто "все не так", да?Да особо никакой. А что?
где в "аналогичном варианте" выводится порядковый номер проблемного элемента?Но если очень хочется, то вот пайтоновский вариант аналогичный твоему ПХПшному