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() — Переносит строку по указанному количеству символов
  • Посимвольный доступ и изменение строки

Источник

PHP substr

Summary: in this tutorial, you’ll learn how to use the PHP substr() function to extract a substring from a string.

Introduction to the PHP substr() function

The substr() function accepts a string and returns a substring from the string.

Here’s the syntax of the substr() function:

substr ( string $string , int $offset , int|null $length = null ) : stringCode language: PHP (php)
  • $string is the input string.
  • $offset is the position at which the function begins to extract the substring.
  • $length is the number of characters to include in the substring. If you omit the $length argument, the substr() function will extract a substring from the $offset to the end of the $string . If the $length is 0, false, or null, the substr() function returns an empty string.

PHP substr() function examples

Let’s take some examples of using the substr() function.

1) Simple PHP substr() function example

The following example uses the substr() function to extract the first three characters from a string:

 $s = 'PHP substring'; $result = substr($s, 0, 3); echo $result;// PHPCode language: HTML, XML (xml)

In this example, the substr() function extract the first 3 characters from the ‘PHP substring’ string starting at the index 0.

PHP substr() function

2) Using PHP substr() function with the default length argument

The following example uses the substr() function to extract a substring from the ‘PHP substring’ string starting from the index 4 to the end of the string:

 $s = 'PHP substring'; $result = substr($s, 4); echo $result; // substringCode language: HTML, XML (xml)

In this example, we omit the $length argument. Therefore, the substr() returns a substring, starting at index 4 to the end of the input string.

PHP substr() function with default length

PHP substr() function with negative offset

The $offset argument can be a negative number. If the $offset is negative, the substr() function returns a substring that starts at the offset character from the end of the string. The last character in the input string has an index of -1 .

The following example illustrates how to use the substr() function with negative offset:

 $s = 'PHP is cool'; $result = substr($s, -4); echo $result; // coolCode language: HTML, XML (xml)

In this example, the substr() returns a substring that at 4th character from the end of the string.

The following picture illustrates how the substr() function works in the above example:

PHP substr() function with negative offset

PHP substr() function with negative length

Like the $offset argument, the $length argument can be negative. If you pass a negative number to the $length argument, the substr() function will omit a $length number of characters in the returned substring.

The following example illustrates how to use the substr() with a negative $offset and $length arguments:

 $s = 'PHP is cool'; $result = substr($s, -7, -5); echo $result; // isCode language: HTML, XML (xml)

The following picture illustrates how the above example works:

PHP substr() function with negative length

The PHP mb_substr() function

See the following example:

 $message = 'adiós'; $result = substr($message, 3, 1); echo $result;Code language: HTML, XML (xml)

This example attempts to extract a substring with one character in the $message string starting at index 3. However, it shows nothing in the output.

The reason is that the $message string contains a non-ASCII character. Therefore, the substr() function doesn’t work correctly.

To extract a substring from a string that contains a non-ASCII character, you use the mb_substr() function. The mb_substr() function is like the substr() function except that it has an additional encoding argument:

mb_substr ( string $string , int $start , int|null $length = null , string|null $encoding = null ) : stringCode language: PHP (php)

The following example uses the mb_substr() function to extract a substring from a string with non-ASCII code:

 $message = 'adiós'; $result = mb_substr($message, 3, 1); echo $result;Code language: HTML, XML (xml)

PHP substr helper function

The following defines a helper function that uses the mb_substr() function to extract a substring from a string:

 function substring($string, $start, $length = null) < return mb_substr($string, $start, $length, 'UTF-8'); >Code language: HTML, XML (xml)

Summary

  • Use the PHP substr() function to extract a substring from a string.
  • Use the negative offset to extract a substring from the end of the string. The last character in the input string has an index of -1 .
  • Use the negative length to omit a length number of characters in the returned substring.
  • Use the PHP mb_substr() function to extract a substring from a string with non-ASCII characters.

Источник

Выборка от и до определенного символа

Удалить часть строки от определенного символа до определенного символа
Всем привет, есть строка 127.0.0.1(spec) (domen\admin — user) как удалить не нужные символы.

Считывание от определенного символа до другого определенного символа
Привет всем, можете помочь мне с кодом одним? Мне нужно что бы начиналось чтение от определенного.

Считать из файла от определенного символа(слова) до определенного символа(слова)
Считываем текст из файла. Допустим от слова "Qwerty" до слова "Uiop". Примерно догадываюсь как это.

Как скопировать подстроку из строки до определенного символа? Или удалить, начиная с этого символа
Добрый вечер. Ответ искал, но не нашёл. Предположим, есть строка: ABC|DEF Надо скопировать.

 $avatar = 'text_text2_text3'; $avatar = preg_split("/\||\_/m",$avatar); //$avatar = $avatar[0]. ' ' .$avatar[1].'_'.$avatar[2]; echo '"'.$avatar[0]. '" и "' .$avatar[1].'_'.$avatar[2].'"'; ?>

ЦитатаСообщение от Cript Посмотреть сообщение

 $str = "text_text2_text3"; preg_match("/^([^_]*)_(.*)$/", $str, $res); echo $res[1]."
\r\n"
; // В переменной $res[1] хранится часть ДО первого _ echo $res[2]."
\r\n"
; // В переменной $res[2] хранится часть ПОСЛЕ первого _ ?>

ЦитатаСообщение от MVS76 Посмотреть сообщение

ЦитатаСообщение от pav1uxa Посмотреть сообщение

$str = «text_text2_text3»;
preg_match(«/^([^_]*)_(.*)$/», $str, $res);
echo $res[1].»
\r\n»; // В переменной $res[1] хранится часть ДО первого _
echo $res[2].»
\r\n»; // В переменной $res[2] хранится часть ПОСЛЕ первого _
?>

Интересный вариант, но если строка не содержит символа «_» то $res[1],[2] будут пустыми, случайно не знаете как исправить ?

 $source = 'text_text2_text3'; $offset = strpos($source, '_'); $result = ($offset) ? substr($source,0,$offset) : $source; echo " => "; ?>

Если в тексте есть символ «_», то в результате окажется строка от начала до «_».
Если в тексте нет символа «_», то в результате окажется вся строка.

Добавлено через 7 минут
Если нужно просто разделить, то:

 $source = 'text_text2_text3'; $result = explode('_', $source, 2); echo "
"; print_r($result); echo "

"; ?>

ЦитатаСообщение от Cript Посмотреть сообщение

Интересный вариант, но если строка не содержит символа «_» то $res[1],[2] будут пустыми, случайно не знаете как исправить ?

Вы не говорили что его может не быть. Опишите лучше, что Вам надо. Какие могут быть варианты, какие при этом должны храниться результаты. Где они должны храниться, как храниться.

 $str = "text1_text2 text3"; if (preg_match("/^([^_]*)_(.*)$/", $str, $result)) { $res[]=$result[1]; $res[]=$result[2]; } else $res[] = $str; print_r($res); ?>

ЦитатаСообщение от pav1uxa Посмотреть сообщение

Какие могут быть варианты, какие при этом должны храниться результаты. Где они должны храниться, как храниться.

Название картинки, может содержать название типа 123_1.png, либо 1400860521_123_2.png, где 1400860521 — время в unix формате.
Нужно задать условие, если картинка имеет в начале приставку со временем, то путь до папки с картинкой другой и т.д..

ЦитатаСообщение от Cript Посмотреть сообщение

Нужно задать условие, если картинка имеет в начале приставку со временем, то путь до папки с картинкой другой и т.д..

1 2 3 4 5 6 7 8 9 10 11 12 13
 $str = "text1_text2 text3"; if (preg_match("/^([^_]+)_(.*)$/", $str, $result)) { // имеет приставку. приставка находится в $result[0] // остальная часть файла после символа "_" в $result[1] } else { // не имеет приставку // название целиком по прежнему хранится в $str } ?>

ЦитатаСообщение от pav1uxa Посмотреть сообщение

$str = «text1_text2 text3»;
if (preg_match(«/^([^_]+)_(.*)$/», $str, $result))
* * // имеет приставку. приставка находится в $result[0]
* * // остальная часть файла после символа «_» в $result[1]
>
else
* * // не имеет приставку
* * // название целиком по прежнему хранится в $str
>
?>

Супер! Все работает, только первая часть названия это $result[1], вторая $result[2], а $result[0] выведет изначальное название целиком.

Как читать строку в массив до определенного символа и после продолжить чтение опять до символа
Как читать строку в массив до определенного символа и после продолжить чтение опять до символа. к.

Копирование от определенного символа до определенного символа
Такая задача есть строки и нужно скопировать после символа * и до третьего пробела 2281488 Г Ц .

Функция искать от определенного символа до другого символа
Доброго времени суток. Ребят подскажите пожалуйста как сделать такую функцию — Найти в ячейке слово.

Поиск определенного слова в строке и замена определенного символа после этого слова
Представим что у нас есть следующая строка: "Дядя Петя 10 раз ударил дядю Васю, но дядя Вася.

Выборка от символа до символа с заменой
Всем привет! Кто подскажет написание запроса на выборку от определенного символа до символа с.

Выборка определенного значения
Здравствуйте. Есть таблица Iso__ жанр _____актер1___ актер2__________________текст.

Источник

Читайте также:  Html type text properties
Оцените статью