Строковые функции PHP
При разработке интернет магазинов очень часто требуется обрабатывать введенные пользователем данные в текстовые поля. Для этого и существуют строковые функции в PHP. С их помощью мы можем обрабатывать текстовую информацию так, как нам нужно. В этой статье мы в начале разберем основные строковые функции, а потом напишем небольшой пример, для закрепления.
Вот список основных, и самых используемых строковых функций в php:
srelen ("текст") — считает количество символов в строке. Вот небольшой пример:
<?php
echo strlen("http://ox2.ru/"); //На экране появится 14
?>
str_replace("что заменять", "на что заменять", "текст"); – функция нужна для замены подстроки в строке. Например, нам нужно заменить слово студия на «ля-ля-ля», в предложении: «Дизайн студия OX2 на рынке 20 лет»
<?php
echo str_replace("студия", "ля-ля-ля", "Дизайн студия OX2 на рынке 20 лет");
?>
На экране увидим: «Дизайн ля-ля-ля OX2 на рынке 20 лет »
trim ("текст", "символы") — удаляет символы по краям. Например, нам нужно удалить по-краям пробелы и запятые в строке - « , , , Дизайн студия ox2.ru , , ", ", ». Для этого напишем код:
<?php
echo trim(" , , , Дизайн студия ox2.ru , , ", ", ");
?>
Первый параметр строка, второй — символы, которые нужно удалить по краям (если не указывать второй параметр, то обрезаться будут только пробелы).
На экране увидим «Дизайн студия ox2.ru», без пробелов и запятых. Есть аналогичные функции ltrim — удаляет символы слева, и rtrim — справа.
Функция очень часто используется при создании интернет-магазинов, например при авторизации, чтобы пользователь при копировании пароля из блокнота случайно не вставил лишние пробелы или другие знаки.
substr("Строка", "Начальная позиция", "Конечная позиция"); - возвращает часть строки. Например, нам нужно в строке "Дизайн студия ox2.ru занимается созданием сайтов и интернет-магазинов" обрезать все лишнее, и оставить только «ox2.ru занимается созданием сайтов», для этого напишем код:
<?php
echo substr("Дизайн студия ox2.ru занимается созданием сайтов и интернет-магазинов", 14, 34);
?>
Вырезаем подстроку, начинаю с 14-ого символа, и заканчивая 34. На экране увидим «ox2.ru занимается созданием сайтов». Если последний параметр (34) не указывать, то текст будет вырезан с 14-ой позиции до конца строки.
strpos("Строка", "подстрока", позиция начального символа); — возвращает позицию найденной подстроки в строке. Например, нам нужно узнать позицию слова "ox2" в строке "Компания ox2.ru умеет создавать интернет магазины. В дизайн студии ox2.ru вы можете заказать сайт", пишем код:
<?php
echo strpos("Компания ox2.ru умеет создавать интернет магазины.
В дизайн студии ox2.ru вы можете заказать сайт", "ox2");
?>
На экране увидим 9, т.к. с 9-ого символа начинается первое вхождение слова ox2. Если указать 3-ий параметр то поиск вхождения будет с этой позиции.
Так же есть функция strrpos, она ищет справа налево. Если в этом примере указать вместо strpos – strrpos, то на экране увидим 67, т.к. справа первое вхождение начинается с 67-ого символа.
Теперь напишем пример, для закрепления материала. В нашем скрипте будем обрабатывать данные из текстового поля «Адрес сайта:». Адрес сайта можно ввести так: «http://ox2.ru/», можно так «www.ox2.ru», можно так: «ox2.ru/», и т.д. Вариантом достаточно много. А для нашего интернет-магазина обязательное условие, это хранение всех данных о пользователе в едином формате («ox2.ru», без http, www, пробелов и слэшей по краям!).
<?php
/**
* Работа со строковыми функциями
* @author дизайн студия ox2.ru
*/
//Строка, которую нужно привести к виду "ox2.ru".
//Заметьте что адрес сайта еще и окружен пробелами!
$string = " http://www.ox2.ru/ ";
$string = trim($string, "/ "); //Удаляем пробелы по-бокам, и слэш справа
if (strpos($string, "http://") !== false) { //Если в строке присутствует подстрока http://, то:
$string = substr($string, strpos($string, "http://") + strlen("http://")); //Обрезаем
}
if (strpos($string, "www.") !== false) {
$string = substr($string, strpos($string, "www.") + strlen("www."));
}
echo ""$string"";
?>
Конечно это не самый удачный вариант, использовать такое количество строковых функций для обрезания лишнего, можно воспользоваться той же функцией str_replace:
<?php
echo str_replace("www.", "", str_replace("http://", "", trim(" http://www.ox2.ru/ ", "/ ")));
?>
Но цель урока показать использование этих функций в связке.
Работать со строковыми функциями приходиться не только если цены на создание сайтов высокие, в эконом сайтах они тоже почти всегда используются.
Рекомендуем почитать