[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Оптимизация функции №1
KaFe
Вот моя функция, к удивлению рабочая
function hq_io_check($value,$mode) 
{
function check ($value) {if ((strlen($value)<255) && (strlen($value)>0))
{return $value;} else {return 2;}}
if ($value=='') {return 2;}
if ($mode=='') $mode='S';
$mode=strtoupper($mode);
switch ($mode){
case 'S':{
if (!preg_match("/[^a-zA-Z0-9]/", $value))
{$a=check($value);
if ($a!=2) {return $value;} else {return 2;}} else {return 2;}
break;
}
case 'A':{
if (!preg_match("/[^a-zA-Z0-9,]/", $value))
{$str=explode(",",$value);unset($off);
for ($x=0;$x<count($str);$x++) {if (check($str[$x])==2) $off++;}
if ($off>0) {return 2;} else
{
for ($m=0;$m<count($str);$m++)
{for ($n=0;$n<count($str);$n++){if ($m!=$n) {if (strtolower($str[$m])==strtolower ($str[$n])) {$off++;}}}}
if ($off>0) {return 2;} else {return $value;}
}
}

else
{return 2;}
break;
}
}
}


Смысл ее фильтрования данных, вызываться фун-ция может в двух режимах
1.Одиночное значение (ключ S)
hq_io_check('table','S')

2.Список значений через запятую (ключ A)
hq_io_check('mama,papa','A')


Значения могут состоять только из латинских букв и цифр 0-9. Если задается список значений, то он проверяется повторение значений.

unsure.gif Покажите где можно упростить и оптимизировать фун-цию



Спустя 2 часа, 55 минут, 51 секунда (7.05.2010 - 01:01) sergeiss написал(а):
Цитата (KaFe @ 6.05.2010 - 23:05)
Покажите где можно упростить и оптимизировать фун-цию

Например, смотрим case 'A':
Если уж ты сделал массив через explode (и правильно, что так сделал!), то тогда используй функции работы с массивами, делающие нужную работу. Это множество функций, начинающихся со слова array_ - подробнее см. в хэлпе. Зачем что-то изобретать?

Это первое, что "бросилось в глаза". Возможно, что и еще много чего можно найти smile.gif

Спустя 2 часа, 48 минут, 5 секунд (7.05.2010 - 03:49) KaFe написал(а):
sergeiss
окей, посмотрю
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.