Найти номер строки php

Найти номер строки php

Строки играют большую роль, задачи на парсинг строк довольно часто встречаются в PHP , поэтому рассмотрим некоторые базовые функции работы со строками.

Строки представляют некоторый текст, который заключен в одинарные или двойные кавычки:

$str1 = "Hello"; $str2 = 'Welcome';

Но также PHP позволяет определить строку и без кавычек с помощью оператора

В данном случае «LABEL» — это название метки, которая указывает на начало и конец строки. Название метки произвольное. То есть все, что расположено между

И в данном случае, как и в обычной строке мы можем использовать переменные:

Обращение к символам строки

PHP позволяет обращаться к отдельным символам строки как к элементам массива по числовому индексу:

$str = "Hello Tom"; echo $str[0];// получим первый символ - H $str[1] = "i"; // поменяем второй символ echo "
" . $str . "
"; // Hillo Tom

Индексация символов, как и в массиве, начинается с нуля.

Специальные функции и расширение mbstring

Кроме некоторых базовых возможностей по работе со строками PHP также предоставляет ряд специальных функций. Для некоторых из них требуется подключить специальное расширение — mbstring.dll . Для подключения этого расширения откроем файл конфигурации PHP — php.ini и найдем в нем следующую строку:

Раскомментируем ее, убрав точку с запятой.

Также убедимся, что у нас указан путь к папке расширений.

Найдем в файле php.ini строку:

Эта строка указывает на каталог с подключаемыми расширениями для PHP. По умолчанию все расширения располагаются в папке ext . Раскомментируем эту строку, убрав точку с запятой, и укажем полный путь к папке ext . Так, в моем случае папка c php расположена в корне диска C (ОС Windows), соответственно я указываю путь «C:\php\ext»:

И так как у нас файл php.ini изменился, перезапустим веб-сервер Apache.

Подключение расширения mbstring позволит задействовать некоторые дополнительные функции для работы со строками, которые в стандартном наборе PHP отсутствуют (такие функции обычно начинаются с префикса mb_ ).

Функции strpos() и mb_strpos()

Функция strpos($str, $search) возвращает позицию подстроки или символа $search в строке $str или значение false , если строка $str не содержит подстроки $search:

$input = «This is the end»; $search = «is»; $position = strpos($input, $search); // 2 if($position!==false)

При использовании этой функции надо учитывать, что индексация символов в строке начинается с нуля, поэтому позиция символа «T» будет равна 0. Поэтому сравнение $position!=false будет работать некорректно, ведь false и 0 при сравнении и приведении к общему типу будут представлять одно и то же значение. Поэтому в данном случае корректно использовать только операцию эквивалентности: $position!==false или $position===false .

Теперь применим функцию на другом примере:

$input = "Мама мыла раму"; $search = "мы"; $position = strpos($input, $search); // 9

Неожиданно, но результатом функции будет число 9. Хотя мы видим, что истинная позиция подстроки «мы» в исходной строке равна 5.

Все дело в том, что некоторые строковые функции не всегда корректно обрабатывают кириллические символы, и для них лучше использовать другую функцию — mb_strpos() :

$position = mb_strpos($input, $search); // 5

Функция strrpos()

Функция strrpos() во многом аналогична функции strpos() , только ищет позицию не первого, а последнего вхождения подстроки в строку:

$input = "This is the end"; $search = "is"; $position = strrpos($input, $search); // 5

Но опять же данная функция не совсем корректно работает с кириллическими символами, поэтому нам надо использовать ее аналог — mb_strrpos() :

$position = mb_strrpos($input, $search);

Функция trim()

Функция trim($str) удаляет из строки начальные и конечные пробелы, а также управляющие символы \n, \r, \t:

$input = " Мама мыла раму "; $input = trim($input);

Изменение регистра

Для перевода строки в нижний регистр используется функция strtolower :

$input = "The World is Mine"; $input = strtolower($input);

Для перевода в нижний регистр строки с кириллическими символами можно использовать функцию mb_strtolower :

$input = mb_strtolower($input);

Для перевода строки в верхний регистр примеяются функции strtoupper() / mb_ strtoupper() , которые работают аналогично.

Функция strlen()

Функция strlen() возвращает длину строки, то есть количество символов в ней:

$input = "Hello world"; $num = strlen($input); echo $num;

Функция strlen() также некорректно работает с кириллицей, поэтому в этом случае лучше применять функцию mb_strlen() :

$input = "Мама мыла раму"; $num = mb_strlen($input); echo $num;

Получение подстроки

Применяя функцию substr($str, $start [, $length]) , можно получить из одной строки ее определенную часть. Данная функция обрезает строку $str, начиная c символа в позиции $start до конца строки. С помощью дополнительного необязательного параметра $length можно задать количество вырезаемых символов.

$input = "The world is mine!"; $subinput1 = substr($input, 2); $subinput2 = substr($input, 2, 6); echo $subinput1; echo "
"; echo $subinput2;

Так как данная функция некорректно работает с кириллицей, то вместо нее следует применять функцию mb_substr() , которая действует аналогично:

$input = "Мама мыла раму"; $subinput1 = mb_substr($input, 2); $subinput2 = mb_substr($input, 2, 6);

Замена подстрок

Для замены определенной части строки применяется функция str_replace($old, $new, $input) . Эта функция заменяет в строке $input все вхождения подстроки $old на подстроку $new с учетом регистра:

$input = "Мама мыла раму"; $input = str_replace("мы", "ши", $input); echo $input;

Источник

Читайте также:  Inserting an image with html
Оцените статью