Xwab
Форумыnavigate_nextПрограммирование на PHP

strlen'о-заменитель
Сообщения
Mars

<?php
$test = '12345678910';
$test2 = '1234';

/* пример реализации условия с strlen, проверка чтобы строка была длиннее 4х символов */
echo (strlen($test)>4) ? 'true<br />' : 'false<br />'; //выведет true
echo (strlen($test2)>4) ? 'true<br />' : 'false<br />'; //выведет false

/* а теперь аналог - собственная функция работающая в 2 (или более, в зависимости от объёма данных) раза быстрее! */
function strlenx($s, $x)
{
return isset($s{$x});
}

echo (strlenx($test, 5)) ? 'true<br />' : 'false<br />'; //выведет true
echo (strlenx($test2, 5)) ? 'true<br />' : 'false<br />'; //выведет false

/* за счет чего strlenx работает быстрее strlen?
- за счет того, что strlen не предназначена для сравнений длин строк,
её задача сосчитать количество символов в строке */

(c)

22 Июн 2010, 0:26
suhonok

Mars,
echo (strlenx('апчу', 5)) ? 'true<br />' : 'false<br />'; //выведет true

22 Июн 2010, 0:36
Mars

только что проверил, false выводит

22 Июн 2010, 0:43
M0rbid

Mars, есть в каждой третей статье, найденной в гугле по запросу "php оптимизация"

22 Июн 2010, 0:50
Mars

хорошо значит

22 Июн 2010, 0:59
suhonok

Mars, я несколько букв перебрал кириллицы и всё равно true )

22 Июн 2010, 1:05
M0rbid

suhonok, в кирилице 1символ 2байта

22 Июн 2010, 1:20
suhonok

M0rbid, бери больше) ну я про то, что функция из сериала "Записки бояниста"  ещё и записаны в половину второго ночи

22 Июн 2010, 1:23
M0rbid

suhonok, да норм записка. Уверен подобные вещи не для всех очевидны, комуто пригодитсо

22 Июн 2010, 3:36
Replikon

С русским текстом нормально работает?

22 Июн 2010, 8:54
Ответить на тему