Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: нужна регулярка на проверку текста
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
DlTA пишет:
Необходимо проверить валидность текста перед тем как его запускать в обработчик
Предполагаемая вами схема продвеик вводимых пользователе информационных полей на предмет соответствия фиксированным допустимым списка значений - может быть реализовано посредтсвом использования функций поиска в многомерном массиве при установке собственного флага критерия совпадения
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
DlTA
Отправлено: 27 Ноября, 2010 - 15:25:35
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
к сожелению меня интересует на данный момент не вопрос "что в массиве?", а "правильно ли он оформлен?"
попытаюсь объяснить более детально суть задачи:
изначально некий удаленный сервер мне возвращает подобный текст
но в целях безопастности, а точнее устойчивости к "внешним" ошибка (малоли что мне там вернут) хотел прежде чем исользовать eval() проверить результирующаю строку на валидность.
ALEN
Отправлено: 27 Ноября, 2010 - 17:11:22
Участник
Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008 Откуда: Крым
Помог: 11 раз(а)
DlTA
какой функцией переводишь?
DlTA
Отправлено: 27 Ноября, 2010 - 17:27:59
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
ALEN, str_replace() - а это существенно?
ALEN
Отправлено: 27 Ноября, 2010 - 19:32:05
Участник
Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008 Откуда: Крым
Помог: 11 раз(а)
DlTA
1) Ну на будущие смотрите функцию serialize
2) Или использовать json если передача через JavaScript
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
ALEN пишет:
2) Или использовать json если передача через JavaScript
Смотря какие цели я бы придерживался serialize
P.S. выходит у вас создание медленного велосипеда
с этим понятно в принцыпе так и получается, на надо именно через php.
а вот как мне может помочь серилизация я не пойму?
ALEN
Отправлено: 27 Ноября, 2010 - 20:08:56
Участник
Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008 Откуда: Крым
Помог: 11 раз(а)
serialize и unserialize
кодируешь переменную, объект, массив в строку и передаешь куда хочешь сохраняешь в файл или как тебе удобно, потом читаешь раскодируешь и снова прежний вид, без всяких там eval и другого вредоносного кода.
JustUserR
Отправлено: 27 Ноября, 2010 - 20:48:07
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
DlTA пишет:
Хотел прежде чем исользовать eval() проверить результирующаю строку на валидность
В качестве возможного варианта решения предполагаемой вами задачи заключающей в осуществении получения информационного поля из удаленного источника и проведения его проверки на допустимость входящих компонентов - возможно применение возможностей управялемой безопасной интерпретации указанного PHP-кода в отдельном потоке посредством функциональности модуля runkit
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
DlTA
Отправлено: 27 Ноября, 2010 - 20:53:11
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
ALEN, )) серелизация мне точно не подходит, инфу генерит не мой сервак.
а вообще спасибо, за уточнение
все решается использованием json_encode() и json_decode()
хотя для php 4.х пришлось поизвращаться ссылка на класс и описание как правильно это дело подключить
JustUserR
Отправлено: 27 Ноября, 2010 - 21:00:25
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
DlTA пишет:
Серелизация мне точно не подходит, инфу генерит не мой сервак
В случае если целевая структура получаемых информационных полей являеться фиксированных и заранее известной - то для организации безопасного разбора входных данных достаточно использовать покомпонентное разбиение исходной строки - и сохранения значений полей в соответствующую структуру на стороне приложения
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
DlTA
Отправлено: 27 Ноября, 2010 - 21:49:29
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
JustUserR пишет:
если целевая структура получаемых информационных полей являеться фиксированных и заранее известной - то ...
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
DlTA пишет:
Необходимо проверить валидность текста перед тем как его запускать в обработчик
DlTA а что имено проверять?))) Я в первом примере увидел четырёх мерный масив но не понял какой текст и на какую валидность проверять?
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
DlTA
Отправлено: 27 Ноября, 2010 - 22:33:52
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
OrmaJever, в данном случае приведен пример "правильного" текста
впринцыпе задача решена
но мне все еше интересно как правильно пользоваться подмасками в регулярных и как задавать проверку древовидного текста (xml, html, json, ...)
JustUserR
Отправлено: 29 Ноября, 2010 - 15:46:08
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
DlTA пишет:
Это было-бы очень просто
Возможность организации передачи информационных полей в рамках фиксированного формата в действительности является простым и эфективнм средством - в качестве схожего метода передачи данных с широким распространением может использоваться urlencode-хранение информационных полей в кодированном представлении В случае если осуществления добавления требования к идентификатору передаваемой переменной как к пути ее представления в целевой структуре - аналогичая схема используется при применении идентификаторов типа name="arr[]" для автоматического создания индесных массивов в PHP-скрипте
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.