bmn
Новичок
Регулярные выражения и ресурсы сервера.
Добрый день!
Скрипт очень сильно жрёт ресурсы. Мне кажется, что дело в регулярных выражениях (поправьте, если я не прав).
Скрипт получает input-поля и значения аргументов.
выглядит примерно так:
скрипт по такой же схеме получает textarea'и и select'ы. Это жрёт ресурсы сильно..
Можно ли как - нибудь оптимизировать его? подскажите пожалуйста.
Заранее благодарен!
Добрый день!
Скрипт очень сильно жрёт ресурсы. Мне кажется, что дело в регулярных выражениях (поправьте, если я не прав).
Скрипт получает input-поля и значения аргументов.
выглядит примерно так:
PHP:
$string_tpl = "[a-zA-ZА-Яа-яЁё0-9\!\@\#\$\%\^&\*\(\)\+\=\-\<\?\/\.,;:\[\]\{\}_]";
$string_tpl_1 = "[a-zA-ZА-Яа-яЁё0-9\!\@\#\$\%\^&\*\(\)\+\=\-\<\>\?\/\.,;:\'\[\]\{\}_ ]";
$string_tpl_2 = "[a-zA-ZА-Яа-яЁё0-9\!\@\#\$\%\^&\*\(\)\+\=\-\<\>\?\/\.,;\":\[\]\{\}_ ]";
// находим все input-поля
preg_match_all ("!<input([^>]*)>!is", $forms[2][$k], $inputs);
$inputs = $inputs[1];
while (list ($ik, $iv) = each ($inputs))
{
// получаем значения аргументов (перебираем все возможные способы их задания)
preg_match_all ("/(\w+)\s?=\s?(".$string_tpl."*)/", $iv, $matches);
preg_match_all ("/(\w+)\s?=\s?\"(".$string_tpl_1."*)\"/", $iv, $matches_1);
preg_match_all ("/(\w+)\s?=\s?\'(".$string_tpl_2."*)\'/", $iv, $matches_2);
// может быть эти три способа можно в одном выражении рассмотреть?!
$keys = array_merge ($matches[1], $matches_1[1], $matches_2[1]);
$vals = array_merge ($matches[2], $matches_1[2], $matches_2[2]);
$input[] = array_combine ($keys, $vals);
}
Можно ли как - нибудь оптимизировать его? подскажите пожалуйста.
Заранее благодарен!