Какой рейтинг вас больше интересует?
|
Способ избежать eval() если данные отдаются в формате массивов PHP2012-03-25 23:13:51 (читать в оригинале)eval PHP массивы парсинг Старая знакомая ситуация: есть что-то, какой-то сервис, отдающий массивы PHP в формате функции var_export(), либо исторически сложилось так что что-то в системе отдает оформленные в код PHP массивы. Например, ваш скрипт получает строки вида:
Да, вы не ошиблись, бывает код PHP приходящий в строке. Один из вариантов разбора - eval(). Однако на разнородной системе это и дыра в безопасности. При этом грамотным решением будет serialize() массива на той стороне, и unserialize() на вашей, или JSON. Однако, предположим, что в вашем проекте исторически сложилось так, что на "той" стороне это исправить на данный момент нельзя. А массив хочется "разобрать" безопасно. В такой ситуации поможет ставшее стандартным(с PHP 4.2.0) расширение Tokenizer и его функция token_get_all(). Пример простенького разбора массива с ее помощью(пусть он у нас одномерный):
Длиннее чем eval()? Да! За код будет спокойнее чем за eval()? Однозначно - да. Tweet Widget Facebook Like
|
Категория «Образование»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.