Php обрезать строку до первого вхождения

substr

Возвращает подстроку строки string , начинающейся с start символа по счету и длиной length символов.

Список параметров

Входная строка. Должна содержать хотя бы один символ.

Если start неотрицателен, возвращаемая подстрока начинается с позиции start от начала строки, считая от нуля. Например, в строке ‘abcdef‘, в позиции 0 находится символ ‘a‘, в позиции 2 — символ ‘c‘, и т.д.

Если start отрицательный, возвращаемая подстрока начинается с позиции, отстоящей на start символов от конца строки string .

Если string меньше либо содержит ровно start символов, будет возвращено FALSE .

Пример #1 Использование отрицательного параметра start

$rest = substr ( «abcdef» , — 1 ); // возвращает «f»
$rest = substr ( «abcdef» , — 2 ); // возвращает «ef»
$rest = substr ( «abcdef» , — 3 , 1 ); // возвращает «d»
?>

Если length положительный, возвращаемая строка будет не длиннее length символов, начиная с параметра start (в зависимости от длины string ).

Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string (после того как будет вычислена стартовая позиция, если start отрицателен). Если при этом позиция начала подстроки, определяемая аргументом start , находится в отброшенной части строки или за ней, возвращается false.

Если указан параметр length и является одним из 0, FALSE или NULL , то будет возвращена пустая строка.

Если параметр length опущен, то будет возвращена подстрока, начинающаяся с позиции, указанной параметром start и длящейся до конца строки.

Пример #2 Использование отрицательного параметра length

$rest = substr ( «abcdef» , 0 , — 1 ); // возвращает «abcde»
$rest = substr ( «abcdef» , 2 , — 1 ); // возвращает «cde»
$rest = substr ( «abcdef» , 4 , — 4 ); // возвращает false
$rest = substr ( «abcdef» , — 3 , — 1 ); // возвращает «de»
?>

Возвращаемые значения

Возвращает извлеченную часть строки, или FALSE в случае возникновения ошибки или пустую строку string .

Список изменений

Версия Описание
5.2.2 — 5.2.6 Если параметр start указывает на позицию с отрицательной обрезкой, возвращается FALSE . Другие версии возвращают строку с начала.

Примеры

Пример #3 Базовое использование substr()

echo substr ( ‘abcdef’ , 1 ); // bcdef
echo substr ( ‘abcdef’ , 1 , 3 ); // bcd
echo substr ( ‘abcdef’ , 0 , 4 ); // abcd
echo substr ( ‘abcdef’ , 0 , 8 ); // abcdef
echo substr ( ‘abcdef’ , — 1 , 1 ); // f

// Получить доступ к отдельному символу в строке
// можно также с помощью «квадратных скобок»
$string = ‘abcdef’ ;
echo $string [ 0 ]; // a
echo $string [ 3 ]; // d
echo $string [ strlen ( $string )- 1 ]; // f

Пример #4 substr() и приведение типов

class apple public function __toString () return «green» ;
>
>

echo «1) » . var_export ( substr ( «pear» , 0 , 2 ), true ). PHP_EOL ;
echo «2) » . var_export ( substr ( 54321 , 0 , 2 ), true ). PHP_EOL ;
echo «3) » . var_export ( substr (new apple (), 0 , 2 ), true ). PHP_EOL ;
echo «4) » . var_export ( substr ( true , 0 , 1 ), true ). PHP_EOL ;
echo «5) » . var_export ( substr ( false , 0 , 1 ), true ). PHP_EOL ;
echo «6) » . var_export ( substr ( «» , 0 , 1 ), true ). PHP_EOL ;
echo «7) » . var_export ( substr ( 1.2e3 , 0 , 4 ), true ). PHP_EOL ;
?>

Результат выполнения данного примера:

1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) false 6) false 7) '1200'

Ошибки

Возвращает FALSE в случае ошибки.

Смотрите также

  • strrchr() — Находит последнее вхождение символа в строке
  • substr_replace() — Заменяет часть строки
  • preg_match() — Выполняет проверку на соответствие регулярному выражению
  • trim() — Удаляет пробелы (или другие символы) из начала и конца строки
  • mb_substr() — Возвращает часть строки
  • wordwrap() — Переносит строку по указанному количеству символов
  • Посимвольный доступ и изменение строки

Источник

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
?>

Пример #2 Проверка на вхождение строки

$string = ‘Hello World!’ ;
if( stristr ( $string , ‘earth’ ) === FALSE ) echo ‘»earth» не найдена в строке’ ;
>
// выводит: «earth» не найдена в строке
?>

Пример #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=three

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

Источник

Читайте также:  Blink style in html
Оцените статью