проверить начало строки php
stristr
(PHP 4, PHP 5, PHP 7, PHP 8)
stristr — Регистронезависимый вариант функции strstr()
Описание
Возвращает всю строку haystack начиная с первого вхождения needle включительно.
Список параметров
Строка, в которой производится поиск
needle и haystack обрабатываются без учёта регистра.
Возвращаемые значения
Список изменений
Версия | Описание |
---|---|
8.0.0 | Передача целого числа ( int ) в needle больше не поддерживается. |
7.3.0 | Передача целого числа ( int ) в needle объявлена устаревшей. |
Примеры
Пример #1 Пример использования stristr()
Пример #2 Проверка на вхождение строки
Пример #3 Использование не строки в поиске
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
User Contributed Notes 8 notes
There was a change in PHP 4.2.3 that can cause a warning message
to be generated when using stristr(), even though no message was
generated in older versions of PHP.
Just been caught out by stristr trying to converting the needle from an Int to an ASCII value.
Got round this by casting the value to a string.
An example for the stristr() function:
I think there is a bug in php 5.3 in stristr with uppercase Ä containing other character
if you search only with täry it works, but as soon as the word is tärylä it does not. TÄRYL works fine
handy little bit of code I wrote to take arguments from the command line and parse them for use in my apps.
//now lets parse the array and return the parameter name and its setting
// since the input is being sent by the user via the command line
//we will use stristr since we don’t care about case sensitivity and
//will convert them as needed later.
//lets grap the parameter name first using a double reverse string
// to get the begining of the string in the array then reverse it again
// to set it back. we will also «trim» off the «=» sign
//now lets get what the parameter is set to.
// again «trimming» off the = sign
// now do something with our results.
// let’s just echo them out so we can see that everything is working
?>
when run from the CLI this script returns the following.
Array index is 0 and value is a.php
Parameter is and is set to
Array index is 1 and value is val1=one
Parameter is val1 and is set to one
Array index is 2 and value is val2=two
Parameter is val2 and is set to two
Array index is 3 and value is val3=three
Parameter is val3 and is set to three
stripos
stripos — Возвращает позицию первого вхождения подстроки без учёта регистра
Описание
Список параметров
Строка, в которой производится поиск.
Заметьте, что needle может содержать строку из одного или более символов.
Если этот параметр указан, то поиск будет начат с указанного количества символов с начала строки. Если задано отрицательное значение, отсчёт позиции начала поиска будет произведён с конца строки.
Возвращаемые значения
Возвращает позицию, в которой находится искомая строка, относительно начала строки haystack (независимо от смещения (offset)). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.
Список изменений
Примеры
Пример #1 Пример использования stripos()
= ‘a’ ;
$mystring1 = ‘xyz’ ;
$mystring2 = ‘ABC’ ;
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
User Contributed Notes 8 notes
I found myself needing to find the first position of multiple needles in one haystack. So I wrote this little function:
Regarding the function by spam at wikicms dot org
It is very bad practice to use the same function name as an existing php function but have a different output format. Someone maintaining the code in the future is likely to be very confused by this. It will also be hard to eradicate from a codebase because the naming is identical so each use of stripos() would have to be analyzed to see how it is expecting the output format (bool or number/bool).
Calling it string_found() or something like that would make a lot more sense for long-term use.
Finding numbers in strings requires you to cast the number to string first.
A handy function if you need to adjust layout based on whether or not a string contains descending letters:
If you like using ternary operator, I wrote simple example how to use stripos function.
Also, in my example I add «How to use namespaces» for wide knowledges for newbies.
this would to work with any language, i hope.
tested on czech (eastern europe) lang.
Как проверить, начинается ли строка с «_» в PHP?
Вы можете проверить функцию substr в php и перенести первый символ таким образом:
Как это работает?
Поскольку кто-то упомянул об эффективности, я сравнивал функции, данные до сих пор из любопытства:
Вот результаты на моей средней машине DualCore со 100 000 прогонами каждый
Как вы можете видеть, обработка стога сена в качестве массива для поиска символа на первой позиции всегда является самым быстрым решением. Он также всегда работает на равной скорости, независимо от длины строки. Использование strpos быстрее, чем substr для коротких строк, но медленнее для длинных строк, когда строка не начинается с префикса. Однако разница не имеет значения. stripos невероятно медленная с длинными струнами. preg_match выполняет в основном то же самое независимо от длины строки, но только посредственно по скорости. Решение mb_substr работает хуже, хотя, вероятно, более надежным.
Учитывая, что эти цифры рассчитаны на 100 000 прогонов, должно быть очевидно, что мы говорим о 0,0000x секунд за звонок. Выбирать один над другим для эффективности – это бесполезная микро-оптимизация, если ваше приложение не startsWith проверкой на жизнь.
Это самый простой ответ, в котором вас не беспокоит производительность:
Здесь лучше начать с функции:
Чтобы основываться на ответе Pinusnegra, и в ответ на комментарий Gumbo к этому ответу:
Запустив на PHP 5.3.0, следующее работает и возвращает ожидаемое значение, даже не проверяя, имеет ли длина строки не менее 1 символа:
Я не знаю, как будут реагировать другие версии PHP, но если они все работают, то этот метод, вероятно, более эффективен, чем маршрут substr.
Как проверить, начинается ли строка с «_» в PHP?
Вы можете проверить функцию substr в php и перенести первый символ таким образом:
Как это работает?
Поскольку кто-то упомянул об эффективности, я сравнивал функции, данные до сих пор из любопытства:
Вот результаты на моей средней машине DualCore со 100 000 прогонами каждый
Как вы можете видеть, обработка стога сена в качестве массива для поиска символа на первой позиции всегда является самым быстрым решением. Он также всегда работает на равной скорости, независимо от длины строки. Использование strpos быстрее, чем substr для коротких строк, но медленнее для длинных строк, когда строка не начинается с префикса. Однако разница не имеет значения. stripos невероятно медленная с длинными струнами. preg_match выполняет в основном то же самое независимо от длины строки, но только посредственно по скорости. Решение mb_substr работает хуже, хотя, вероятно, более надежным.
Учитывая, что эти цифры рассчитаны на 100 000 прогонов, должно быть очевидно, что мы говорим о 0,0000x секунд за звонок. Выбирать один над другим для эффективности – это бесполезная микро-оптимизация, если ваше приложение не startsWith проверкой на жизнь.
Это самый простой ответ, в котором вас не беспокоит производительность:
Здесь лучше начать с функции:
Чтобы основываться на ответе Pinusnegra, и в ответ на комментарий Gumbo к этому ответу:
Запустив на PHP 5.3.0, следующее работает и возвращает ожидаемое значение, даже не проверяя, имеет ли длина строки не менее 1 символа:
Я не знаю, как будут реагировать другие версии PHP, но если они все работают, то этот метод, вероятно, более эффективен, чем маршрут substr.
Изучаем PHP: поиск символа в строке
В этой статье рассматриваются различные методы поиска слова, символа или подстроки в тексте. Описываются преимущества и недостатки каждого метода.
Поиск символа в строке — использование strpos() для регистрозависимого поиска
Простейшим способом проверить, содержит ли строка определённое слово, является использование PHP функции strpos(). Она возвращает позицию первого вхождения подстроки в строке или FALSE, если соответствия не найдены. Поэтому можно сравнить значение, возвращаемое функцией strpos() с FALSE, чтобы проверить наличие подстроки. Пример:
При поиске целого слова (например, “на”) функция также вернёт значение TRUE, если строка содержит такие слова, как “она”, “вена” или “например”.
Поиск символа в строке — использование функции stripos() для регистронезависимого поиска
Для регистрозависимого поиска можно использовать функцию stripos(). Она работает аналогично функции strpos(). Единственное отличие заключается в том, что она игнорирует регистр при поиске подстроки внутри другой строки.
Функция strpos() вернула бы значение FALSE во всех перечисленных выше случаях. Но функция stripos() проигнорировала регистр и вернула значение TRUE.
Другим способом поиска, независящим от регистра, является преобразование всех строк и подстрок в одинаковый регистр, используя функции strtolower() и strtoupper(). Для проверки можно использовать strpos(). Но проще stripos().
Поиск символа в строке — использование регулярных выражений
Также для поиска можно использовать регулярные выражения. Они лучше подходят для случаев, когда вы ищете в строке более сложные конструкции.
Но помните, что функция strpos() работает в три раза быстрее, чем регулярные выражения. Следующий пример демонстрирует, как с их помощью найти слово, символ в строке:
Использование функции preg_match() имеет смысл только при сложном поиске. Например, для проверки того, содержит ли строка слова с десятью и более символами и т.п. Пример:
Чтобы сделать поиск регистронезависимым, добавьте флаг i в конец шаблона. Пример реализации:
Использование регулярных выражений для поиска точного вхождения слова
Функции strpos() и stripos()работают быстрее, чем регулярные выражения. Но их использование для поиска точного вхождения слова может быть проблематичным.
В подобных ситуациях лучше применять регулярные выражения. Можно использовать выражение b в шаблоне регулярного выражения, чтобы обозначить границу слова. Если слово, которое вы ищете, заключено в выражения b, функция preg_match() найдёт только точные вхождения слова и вернет FALSE для частичных совпадений. Вот пример:
Использование strstr() для поиска подстроки
PHP функция strstr() может быть использована для проверки вхождения символа или подстроки. Она возвращает часть исходной строки, начиная с первого вхождения искомого слова и до конца. Функция вернёт значение FALSE, если подстрока не найдена. Благодаря этому можно проверить, содержит ли строка подстроку. Вот пример:
Для регистронезависимого поиска используйте функцию stristr().
Пожалуйста, оставляйте ваши комментарии по текущей теме материала. Мы крайне благодарны вам за ваши комментарии, подписки, отклики, лайки, дизлайки!