Преобразование пути в массив

DiMA

php.spb.ru
Команда форума
В чем же тут ахинея?

$path = 'abc/def/ghi';
$value = '111';

$x="\$array['".str_replace("/","']['",$path)."']=\"$value\"";
eval($x);

-~{}~ 20.02.09 17:56:

PHP:
echo "$x\r\n\r\n";
print_r($array);

$array['abc']['def']['ghi']="111";

Array
(
    [abc] => Array
        (
            [def] => Array
                (
                    [ghi] => 111
                )

        )

)
мне достаточно 5-ти секунд, чтобы это сочинить
 

riff

Новичок
хоть бы до меня не добрались, хоть бы до меня не добрались, ...
 

tamerlan

Новичок
непонятно, чем не устраивает остановиться на експлоде.
Как раз таки на эксплоде я и остановился. Мне это вариант наиболее симпатичен (компактен, безопасен и т.д.).
 

DiMA

php.spb.ru
Команда форума
> компактен, безопасен и т.д.

чушь
компактно и безопасно будет через рег, а не цикл с explode
 

x-yuri

Новичок
DiMA разве решение с explode не безопасно в отличие от твоего текущего варианта?
 

DiMA

php.spb.ru
Команда форума
> от твоего текущего

это был мой ответ на сообщение:

>> описать, как заменить / на '][' и по бокам дописать [' и '], к концу дописать =111 и полученную строку в эвал загнать?

> Дим, ты что-то очень часто в последнее время городишь ахинею.

мне казалось, что решение через str_replace самое простое из всех возможных... как видно - нет

оно не безопасно

-~{}~ 20.02.09 18:11:

> В применении, в данном случае, функции eval()

тебя никто не спрашивал .-)
 

riff

Новичок
Уважаемые, все. как я понял автор вопроса остановился на варианте explode+array_flip, так что никаких циклов и eval'ов.
 

Фанат

oncle terrible
Команда форума
Дима.
Объясни, пожалуйста, зачем ты так настойчиво пытаешься впихнуть человеку дыру на сайт?
 

tamerlan

Новичок
тебя никто не спрашивал .-)
Ты к кому-то конкретно обращался? Но ты не обозначил имени.
И хватит грубить старшим.
Вроде взрослый мужик, а ведёшь себя как ребёнок.
впихнуть человеку дыру на сайт
он, наверное, хочет ею воспользоваться )))

-~{}~ 20.02.09 18:39:

автор вопроса остановился на варианте explode+array_flip
да, плюс использование ссылки на предшествующий массив
 

DiMA

php.spb.ru
Команда форума
> Объясни, пожалуйста, зачем ты так настойчиво пытаешься впихнуть человеку дыру на сайт?

Это был пример специально для HraKK, который не понял моей фразы:

"описать, как заменить / на '][' и по бокам дописать [' и '], к концу дописать =111 и полученную строку в эвал загнать?"

и назвал ее бредом. Вот я хочу узнать - где здесь бред??? Госоди, это же ЭЛЕМЕНТАРНЕЙШИЕ операции со строками!

Раз сей простой метод кому-то не ясен - я раскрыл тему. Посмотри 2ю страницу с низу .-) Этот пример написан для демонстрации того, насколько легко решается задача (не безопасным методом), что не требует вообще никаких знаний и целого убитого дня. О безопасности, кстати, в исходом вопросе ни слова. Это уже выдумано по ходу пьессы.

Как сделать просто, быстро и безопасно, я описал несколько раз.

> Вроде взрослый мужик, а ведёшь себя как ребёнок.

Детский сад у тебя в голове, т.к. именно ты сливаешься от обсуждения бредовости ВСЕЙ задумки, прикрываясь тайной. Жжешь .-) Задвинул бред сивой кобыли - ну, имей мужество выслушать критику и тыканье носом. Пора успокоится уже. Но уязвленное самолюбие не позволяет. А от отчаяния, аж перешел на хамство .-)
 

tamerlan

Новичок
сливаешься от обсуждения бредовости ВСЕЙ задумки
Ну раз я такой глупый, объясни, в чём бред сабжа.
Я с удовольствием тебя выслушаю, о великий магистр точных наук.

-~{}~ 20.02.09 19:00:

Заранее оговорюсь: в задаче нет упоминания и намёков на то, что речь, в целом, идёт о файловой структуре, преобразовании УРЛов и т.д.
Задача чётко сформулирована:

Дано...
Нужно...

Всё.

-~{}~ 20.02.09 19:04:

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

DiMA

php.spb.ru
Команда форума
> Всё.

1. Ты с первого раза не запомнил? С подобной позицией твой шлак будет в корзине. Форум тебе тоже ничего не обязан. Забыл об этом подумать? :)

2. Всю ущербность твоей позиции тебе уже показали (см. ссылку выше, на юмор и преамбулу). Опять за боян взялся?

> Заранее оговорюсь

Ты думаешь, тебе поможет придумывание разных доп. улосвий по ходу пьессы? .-)) Ради Бога, тока про себя.


Читаем 1-е сообщение:

> Преобразование пути в массив
> $path = 'abc/def/ghi';

1. Когда я читаю $path и название топика, я называю вещи своими именами - путь :) Не понимаю, из-за какой проблемы в голове ты отнекиваешься, что никаких путей то и не было...

2. И вообще не понимаю, с чего ты решил, что все сказанное мной нельзя применять к любым иным упомянутым похожим строкам (урл, реестр и т.д.).

> Критику чего?

Критику общей задачи. Я уже сказал, ты не должен хотеть составлять такие строки. Это идиотизм (опровергнуть или подтвердить идиотизм невозможно - ты сливаешься за отмазой "тайна"), т.к. данное место было бы намного эффективней решить по другому. Политика форума в том, чтобы разъяснять подобную тупость "ты не должен этого хотеть", а не давать тебе плодить очередной косяк. Судя по примитивности твой проблемы - тебе такое разъяснение крайне необходимо.

Тока не надо мне опять втирать, про четкость условий. Засунь их... ну я уже говорил =) Короче, все описано в юморе по ссылке выше.
 

HraKK

Мудак
Команда форума
Это был пример специально для HraKK, который не понял моей фразы:
Я прекрастно понял твою фразу и продолжаю утверждать что это ахинея. Если б я не был сейчас с девушкой я бы набросал тебе почему. А так, сам думай.
 

DiMA

php.spb.ru
Команда форума
не переживай, я не топлюсь

уселся поудобнее .-)
 

Фанат

oncle terrible
Команда форума
Дима, зачем в примере, специальном для HraKK, ты приводишь код, который является наиболее удобным для взлома?
 

master_x

Pitavale XXI wieku
по-моему Дима ясно указал на то, что если у топикстартера возникла ТАКАЯ задача то у него не все правильно с архитектурой приложения... а топикстартер по непонятной причине решил что ему все обязаны.
 

DiMA

php.spb.ru
Команда форума
master_x, спасибо, дорогой, хоть кто-то по делу =)
жаль, что слона-то никто не замечает, один стеб и флуд :)

*****
1. Для HraKK я пояснял наиболее простой способ. Без регов. Без ссылок. Без циклов. Чтобы понял даже пень! И только после этого решал следующий НЕЗАВИСИМЫЙ вопрос: о безопасности. Тебя, как и новичков, нужно учить о разделении проблем? Окей, учу:
а) Вопрос 1: осмысли str_replace, eval, склеивание строк, цикл, ссылки и т.д. Т.е. реши свои проблемы с мозгами по части чистого программирования.
б) Вопрос 2: подумай о безопасности, веб-технологиях, пхп и т.д.
Что тебе не ясно в подобном подходе?

2. Ну, наверно уже десятый раз повторяю... HraKK выдвинул мысль, что моя идея решения - бред. Я хочу, чтобы он ответил за базар. С этой целью я привел подробную аргументацию с работающим примером. Я не хочу, чтобы этот способ тупо без проверки на безопасность кто-то использовал и не рекламирую его. Это ТВОИ домыслы. Хватит меня в этом подозревать. Для справки: я выдвинул несколько идей решения, даже ту, которую сам аффтар использует.
 

tamerlan

Новичок
топикстартер по непонятной причине решил что ему все обязаны.
Процитируй мне, пожалуйста, мои слова, где я говорил, что мне все обязаны.

-~{}~ 21.02.09 19:49:

Дима, используя eval в проектах, ты плодишь плацдарм для опытов хакеров-малолеток.
 

Фанат

oncle terrible
Команда форума
tamerlan
ты считаешь, что твой подход единственно правильный, и тебе все должны объяснять. а когда тебя спрашивают, зачем тебе такой кривой массив - ты отвечаешь "не вашего ума дело"
 
Сверху