[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск подстроки в тексте.
Миша
Задача: вернуть boolean при поиске (с первого символа) подстроки в тексте (без учёта регистра).

Задачка может показаться примитивной ) А какое идеальное решение?

$a = "текст";
$b = "текс";

if(mb_stripos($a, $b) === 0)
if(preg_match("/^текс/i", $a))


_____________
Принимаю заказы, писать в ЛС
Миша
Вы каким вариантом воспользуетесь? Или предложите свой.

_____________
Принимаю заказы, писать в ЛС
walerus
Миша
2 smile.gif
Миша
Цитата (walerus @ 6.02.2017 - 01:37)
2 smile.gif

Тогда и про preg_quote (экранирует символы в регулярных выражениях) сказать надо. wink.gif

_____________
Принимаю заказы, писать в ЛС
depp
надо тесты. если на скорость. но я бы выбрал тоже второе.
FatCat
stristr использую.
Мультибайтные кодировки не использую.

_____________
Бесплатному сыру в дырки не заглядывают...
Миша
FatCat, можешь объяснить свой выбор?

_____________
Принимаю заказы, писать в ЛС
Игорь_Vasinsky
Цитата
FatCat, можешь объяснить свой выбор?

олдскулл - олдскилл

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Миша
Игорь_Vasinsky

Цитата (PHP.NET - STRSTR)
Если нужно лишь определить, встречается ли подстрока needle в haystack, используйте более быструю и менее ресурсоемкую функцию strpos().


В следующем сообщении тесты, кто писал документацию unsure.gif

_____________
Принимаю заказы, писать в ЛС
Миша
Цитата (depp @ 6.02.2017 - 13:15)
надо тесты. если на скорость. но я бы выбрал тоже второе.

<?php
$time_start = microtime(true);
$a = "Ленинград";
$b = "Ленин";

for($c = 0; $c <= 10000; $c++) {
// код
}
echo 'Время выполнения: ' . (microtime(true) - $time_start) . ' Микросекунд';
?>


1. Время выполнения: 0.08 - 0.11. Пиковое значение объема памяти: 377 920 Байт

if(mb_stripos($a, $b) === 0) {

}

1 - 0.08
2 - 0.08
3 - 0.08
4 - 0.11
5 - 0.08
6 - 0.09
7 - 0.09
8 - 0.10
9 - 0.07
10 - 0.08

2. Время выполнения: 0.003 - 0.005. Пиковое значение объема памяти: 378 120 Байт

$pattern = "/^" . preg_quote($b, '/') . "/ui";
if(preg_match($pattern, $a)) {

}


1 - 0.003
2 - 0.004
3 - 0.004
4 - 0.005
5 - 0.004
6 - 0.004
7 - 0.004
8 - 0.004
9 - 0.004
10 - 0.003

3. Время выполнения: 0.001 - 0.005. Пиковое значение объема памяти: 377 944 Байт

if(!stristr($a, $b) === FALSE) {

}

1 - 0.001
2 - 0.001
3 - 0.002
4 - 0.003
5 - 0.003
6 - 0.005
7 - 0.005
8 - 0.003
9 - 0.005
10 - 0.001

_____________
Принимаю заказы, писать в ЛС
Быстрый ответ:

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