- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
function xss_clean($str, $is_image = FALSE)//
{
/*
* Is the string an array?
*
*/
if (is_array($str))
{
while (list($key) = each($str))
{
$str[$key] = $this->xss_clean($str[$key]);
}
}
return $str;
}
Wave 22.04.2010 15:24 # 0
$str = $this->_remove_invisible_characters($str);
$str = preg_replace('|\&([a-z\_0-9]+)\=([a-z\_0-9]+)|i', $this->xss_hash()."\\1=\\2", $str);
и так далее, а конкретно приведеный тобой кусок — всего лишь коллбэк для очистки всех элементов массива.
Впрочем, не из кодигнайтера, потому что там ещё одна открывающая, одна закрывающая и куча кода перед закрывающей пропущены. Больше похоже на то, что кто-то скопировал код CI, не понимая сути.
Impossible 22.04.2010 15:35 # +1
Wave 22.04.2010 15:39 # 0
Impossible 22.04.2010 15:42 # 0
pee 22.04.2010 15:28 # −1
nikita2206 22.04.2010 15:34 # +1
Никто не знает про foreach
Impossible 22.04.2010 15:36 # 0
Wave 22.04.2010 15:47 # 0
Impossible 22.04.2010 15:48 # 0
TWINc 22.04.2010 16:39 # 0
Wave 22.04.2010 16:53 # +1
И если не специально для массивов, то для чего? Объекты им перебирать можно только с пятёрки.
TWINc 22.04.2010 17:03 # 0
Wave 22.04.2010 17:09 # 0
PHP 4 introduced a foreach construct, much like Perl and some other languages. This simply gives an easy way to iterate over arrays...
...
As of PHP 5, it is possible to iterate objects too...
0x457845 22.04.2010 18:54 # 0
Wave 22.04.2010 19:26 # +1
return substr($res, 0, 6);
я повторил эти же марки с таким выводом:
number_format (timer(), 8);
и выяснил, что на самом деле вариант с while гораздо быстрей и на много порядков.
Вариант с foreach: 0.29952500 сек
Вариант с while each: 0.00002400 сек
murz 22.04.2010 21:25 # 0
Вариант с foreach: -0.0396820000 сек
Вариант с while each: 0.0000690000 сек
Wave 22.04.2010 21:34 # 0
P.s. У меня минус выскакивает в одном-двух случаях из десяти.
murz 22.04.2010 21:35 # 0
murz 22.04.2010 21:40 # 0
murz 22.04.2010 21:33 # 0
Вариант с foreach: 1.0866749287 сек
Вариант с while each: 0.0000641346 сек
А (переставлены проверки местами)
Вариант с while each: 1.0137848854 сек
Вариант с foreach: 0.8903930187 сек
Wave 22.04.2010 21:41 # 0
Какой будет вывод? Кстати, в одном случае разница огромная, а в другом минимальная (по сравнению с).
А если несколько раз позапускать?
А если классически, отдельно один случай, отдельно другой? Причём, перед запуском делать выключение компа, чтоб обнулить все буферы.
В любом случае, я не буду утверждать однозначно, что быстрей один или другой способ.
murz 22.04.2010 21:46 # 0
Death 22.04.2010 22:33 # 0
Death 22.04.2010 22:46 # 0
Вариант с while each: 0.193212032318 сек
Вариант с while each: 0.216768980026 сек
Вариант с foreach: 0.827805042267 сек
замерено 20 раз по 100000 элементов
Spider 23.04.2010 00:14 # +5
По теме: считаю, что foreach визуально лучше воспринимается чем whlie, list и each
C++0x 23.04.2010 00:30 # −5
Wave 22.04.2010 19:30 # 0
C++0x 22.04.2010 23:59 # −5
striker 23.04.2010 02:23 # +10
cfdev 23.04.2010 11:25 # +4
ccoder 23.04.2010 13:46 # 0
ну-ну...
Говногость 23.04.2010 18:36 # 0