- stristr
- Список параметров
- Возвращаемые значения
- Список изменений
- Примеры
- Примечания
- Смотрите также
- stristr
- Список параметров
- Возвращаемые значения
- Список изменений
- Примеры
- Примечания
- Смотрите также
- User Contributed Notes 8 notes
- str_starts_with
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Смотрите также
- User Contributed Notes 2 notes
- PHP str_starts_with
- Introduction to the PHP str_starts_with() function
- PHP str_starts_with() function examples
- 1) Using PHP str_starts_with() function with single character example
- 2) Using the PHP str_starts_with() function with multiple characters example
- 2) Case-sensitive example
- Summary
stristr
Возвращает всю строку haystack начиная с первого вхождения needle включительно.
Список параметров
Строка, в которой производится поиск
Если needle не является строкой, он приводится к целому и трактуется как код символа.
Если установлен в TRUE , stristr() возвращает часть строки haystack до первого вхождения needle (не включая needle).
needle и haystack обрабатываются без учета регистра.
Возвращаемые значения
Возвращает указанную подстроку. Если подстрока needle не найдена, возвращается FALSE .
Список изменений
Версия | Описание |
---|---|
5.3.0 | Добавлен необязательный параметр before_needle . |
4.3.0 | stristr() теперь бинарно-безопасна. |
Примеры
Пример #1 Пример использования stristr()
$email = ‘USER@EXAMPLE.com’ ;
echo stristr ( $email , ‘e’ ); // выводит ER@EXAMPLE.com
echo stristr ( $email , ‘e’ , true ); // Начиная с PHP 5.3.0, выводит US
?>?php
Пример #2 Проверка на вхождение строки
$string = ‘Hello World!’ ;
if( stristr ( $string , ‘earth’ ) === FALSE ) echo ‘»earth» не найдена в строке’ ;
>
// выводит: «earth» не найдена в строке
?>?php
Пример #3 Использование «нестроки» в поиске
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
- strstr() — Находит первое вхождение подстроки
- strrchr() — Находит последнее вхождение символа в строке
- stripos() — Возвращает позицию первого вхождения подстроки без учета регистра
- strpbrk() — Ищет в строке любой символ из заданного набора
- preg_match() — Выполняет проверку на соответствие регулярному выражению
stristr
Возвращает всю строку haystack начиная с первого вхождения needle включительно.
Список параметров
Строка, в которой производится поиск
До PHP 8.0.0, если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведён к строке, либо должен быть выполнен явный вызов chr() .
Если установлен в true , stristr() возвращает часть строки haystack до первого вхождения needle (не включая needle).
needle и haystack обрабатываются без учёта регистра.
Возвращаемые значения
Возвращает указанную подстроку. Если подстрока needle не найдена, возвращается false .
Список изменений
Версия | Описание |
---|---|
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale() . Будут преобразованы только символы ASCII. Байты не ASCII-кодировке будут сравниваться по значению байта. |
8.0.0 | Передача целого числа ( int ) в needle больше не поддерживается. |
7.3.0 | Передача целого числа ( int ) в needle объявлена устаревшей. |
Примеры
Пример #1 Пример использования stristr()
$email = ‘USER@EXAMPLE.com’ ;
echo stristr ( $email , ‘e’ ); // выводит ER@EXAMPLE.com
echo stristr ( $email , ‘e’ , true ); // выводит US
?>?php
Пример #2 Проверка на вхождение строки
$string = ‘Hello World!’ ;
if( stristr ( $string , ‘earth’ ) === FALSE ) echo ‘»earth» не найдена в строке’ ;
>
// выводит: «earth» не найдена в строке
?>?php
Пример #3 Использование не строки в поиске
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
- strstr() — Находит первое вхождение подстроки
- strrchr() — Находит последнее вхождение символа в строке
- stripos() — Возвращает позицию первого вхождения подстроки без учёта регистра
- strpbrk() — Ищет в строке любой символ из заданного набора
- preg_match() — Выполняет проверку на соответствие регулярному выражению
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.
The following will generate a warning message in 4.0.6 and 4.2.3:
stristr(«haystack», «»);
OR
$needle = «»; stristr(«haystack», $needle);
This will _not_ generate an «Empty Delimiter» warning message in
4.0.6, but _will_ in 4.2.3:
unset($needle); stristr(«haystack», $needle);
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.
if( ! stristr ( $file , (string) $myCustomer -> getCustomerID () ) ) <
// Permission denied
>
?>
An example for the stristr() function:
$a = «I like php» ;
if ( stristr ( » $a » , «LikE PhP» )) print ( «According to \$a, you like PHP.» );
>
?>
It will look in $a for «like php» (NOT case sensetive. though, strstr() is case-sensetive).
For the ones of you who uses linux.. It is similiar to the «grep» command.
Actually.. «grep -i».
function stristr_reverse ( $haystack , $needle ) <
$pos = stripos ( $haystack , $needle ) + strlen ( $needle );
return substr ( $haystack , 0 , $pos );
>
$email = ‘USER@EXAMPLE.com’ ;
echo stristr_reverse ( $email , ‘er’ );
// outputs USER
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
function aim ( $page ) if( stristr ( $_SERVER [ ‘REQUEST_URI’ ], $page )) return ‘ ‘ ;
>
>
?>
usage:
handy little bit of code I wrote to take arguments from the command line and parse them for use in my apps.
$i = implode ( » » , $argv ); //implode all the settings sent via clie
$e = explode ( «-» , $i ); // no lets explode it using our defined seperator ‘-‘
//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.
while (list( $index , $value ) = each ( $e ))
//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 » default»>$param = rtrim ( strrev ( stristr ( strrev ( $value ), ‘=’ )), » keyword»>);
//now lets get what the parameter is set to.
// again «trimming» off the = sign
$setting = ltrim ( stristr ( $value , ‘=’ ), » keyword»>);
// now do something with our results.
// let’s just echo them out so we can see that everything is working
echo «Array index is » . $index . » and value is » . $value . «\r\n» ;
echo «Parameter is » . $param . » and is set to » . $setting . «\r\n\r\n» ;
?>
when run from the CLI this script returns the following.
[root@fedora4 ~]# php a.php -val1=one -val2=two -val3=threeArray 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
str_starts_with
Выполняет проверку с учётом регистра, указывающую, начинается ли haystack с подстроки needle .
Список параметров
Подстрока для поиска в haystack .
Возвращаемые значения
Возвращает true , если haystack начинается с needle , false в противном случае.
Примеры
Пример #1 Использование пустой строки »
Результат выполнения данного примера:
Все строки начинаются с пустой строки
Пример #2 Демонстрация чувствительности к регистру
$string = ‘Ленивая лиса перепрыгнула через забор’ ;
?php
if ( str_starts_with ( $string , ‘Ленивая’ )) echo «Строка начинается с ‘Ленивая’\n» ;
>
if ( str_starts_with ( $string , ‘ленивая’ )) echo ‘Строка начинается с ‘ ленивая » ;
> else echo ‘»ленивая» не найдена, потому что регистр не соответствует’ ;
>
Результат выполнения данного примера:
Строка начинается с 'Ленивая' "ленивая" не найдена, потому что регистр не соответствует
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
- str_contains() — Определяет, содержит ли строка заданную подстроку
- str_ends_with() — Проверяет, заканчивается ли строка заданной подстрокой
- stripos() — Возвращает позицию первого вхождения подстроки без учёта регистра
- strrpos() — Возвращает позицию последнего вхождения подстроки в строке
- strripos() — Возвращает позицию последнего вхождения подстроки без учёта регистра
- strstr() — Находит первое вхождение подстроки
- strpbrk() — Ищет в строке любой символ из заданного набора
- substr() — Возвращает подстроку
- preg_match() — Выполняет проверку на соответствие регулярному выражению
User Contributed Notes 2 notes
With credit to Paul Phillips for the original polyfill posted.
If you do not have PHP 8, you can use these functions to get the capability of the new string functions.
But! Remember to use a conditional check to make sure the function is not already defined.
// source: Laravel Framework
// https://github.com/laravel/framework/blob/8.x/src/Illuminate/Support/Str.php
if (! function_exists ( ‘str_starts_with’ )) function str_starts_with ( $haystack , $needle ) return (string) $needle !== » && strncmp ( $haystack , $needle , strlen ( $needle )) === 0 ;
>
>
if (! function_exists ( ‘str_ends_with’ )) function str_ends_with ( $haystack , $needle ) return $needle !== » && substr ( $haystack , — strlen ( $needle )) === (string) $needle ;
>
>
if (! function_exists ( ‘str_contains’ )) function str_contains ( $haystack , $needle ) return $needle !== » && mb_strpos ( $haystack , $needle ) !== false ;
>
>
?>
This keeps it from breaking in case you upgrade and forget that you added it. This is a good practice generally when using the global scope for your helper functions.
In PHP7 you may want to use:
if (!function_exists(‘str_starts_with’)) function str_starts_with($str, $start) return (@substr_compare($str, $start, 0, strlen($start))==0);
>
>
AFAIK that is binary safe and doesn’t need additional checks.
PHP str_starts_with
Summary: in this tutorial, you’ll learn how to use the PHP str_starts_with() function to check if a string starts with a substring.
Introduction to the PHP str_starts_with() function
The str_starts_with() function performs a case-senstive search and checks if a string starts with a substring:
str_starts_with ( string $haystack , string $needle ) : bool
Code language: PHP (php)
The str_starts_with() function has two parameters:
- $haystack is the input string to check.
- $needle is the substring to search for in the input string.
The str_starts_with() function returns true if the $haystack starts with the $needle or false otherwise.
The str_starts_with() function has been available since PHP 8.0.0. If you use a lower version of PHP, you can polyfill the function like this:
if (!function_exists('str_starts_with')) < function str_starts_with($haystack, $needle) < return (string)$needle !== '' && strncmp($haystack, $needle, strlen($needle)) === 0; > >
Code language: PHP (php)
PHP str_starts_with() function examples
Let’s take some examples of using the PHP str_starts_with() function.
1) Using PHP str_starts_with() function with single character example
The following example uses the PHP str_starts_with() function to check if the string ‘PHP tutorial’ starts with the letter ‘P’ :
$str = 'PHP tutorial'; $substr = 'P'; $result = str_starts_with($str, $substr) ? 'is' : 'is not'; echo "The $str $result starting with $substr";
Code language: PHP (php)
The PHP tutorial is starting with P
Code language: PHP (php)
2) Using the PHP str_starts_with() function with multiple characters example
The following example uses the PHP str_starts_with() function to check if the string ‘PHP tutorial’ starts with the string ‘PHP’ :
$str = 'PHP tutorial'; $substr = 'PHP'; $result = str_starts_with($str, $substr) ? 'is' : 'is not'; echo "The $str $result starting with $substr";
Code language: PHP (php)
The PHP tutorial is starting with PHP
Code language: PHP (php)
2) Case-sensitive example
It’s important to keep in mind that the str_starts_with() function performs a case-sensitive search. For example:
$str = 'PHP tutorial'; $substr = 'php'; $result = str_starts_with($str, $substr) ? 'is' : 'is not'; echo "The $str $result starting with $substr";
Code language: PHP (php)
The PHP tutorial is not starting with php
Code language: PHP (php)
Summary
- Use the PHP str_starts_with() function to perform a case-sensitive search and check if a string starts with a substring.