Уроки PHP для начинающих


Строковые функции

В этой статье познакомимся с некоторыми строковыми функциями.

Думаю, название "строковые" говорит само за себя: это функции, с помощью которых можно обрабатывать строки - в файлах или массивах.

С одной из строковых функций мы давно и хорошо знакомы. Это - функция echo.

Итак,

- echo - выводит на экран одну или более строк

echo "строка"; //строку заключают в кавычки
echo (строка); //можно заключить строку и в круглые скобки
echo $x; //для вывода переменной кавычки не нужны

- explode() - разбивает строку на подстроки

explode("Сепаратор", $Строка);

Другими словами, превращает строку "Строка" в массив с разделителем "Сепаратор". Например:

<?php
$str = "admin@mail.ru"; //мы имеем строковую переменную, значением которой является некий электронный адрес
//нам нужно получить возможность оперировать не со всем адресом одновременно, а с логином и адресом почтового сервера по отдельности
//для этого нужно превратить строку-адрес в массив с двумя отдельными элементами
//а разделителем (сепаратром) между этими элементами будет знак "собака" - @

$srt_array = explode("@", $str); //превратили строку $str в массив с разделителем @; массив поместили в переменную $str_array
//теперь можно манипулировать с логином отдельно и с адресом почтового сервера тоже отдельно
//попробуйте вывести командой echo $str_array на экран и посмотрите, что получится

?>

- implode() - объединяем массив элементов в строку. То есть, это функция, обратная предыдущей. Синтаксис такой:

$str = implode("@", $str_array); //объединили массив из предыдущего примера обратно в строку
//попробуйте вывести теперь $str на экран и сравните результат с предыдущим

- join() - полностью аналогична implode().

- trim() - удаляет пробелы с начала и с конца строки:

$str = trim($string);

О применении функции trim() есть статья Функция trim(), в которой эта функция применяется в скрипте для авторизации пользователя на сайте.

- ltrim() - удаляет пробелы только в начале строки:

$str = ltrim($string);

- print (или - printf) - выводит строку аналогично функции echo. Тогда какой из этих операторов выбрать, спросите вы? Где-то я читал, что echo работает быстрее - так что используйте его, а print/printf пускай будут здесь для общего развития.

- strlen() - возвращает длину строки. То есть, считает количество символов в строке:

$n = strlen($string); //в переменной $n будет кол-во символов в строке $string.
// Можете самостоятельно проверить, как это работает: поместите в переменную $string какой-нибудь текст; примените функцию strlen и выведите $n функцией echo на экран.

- str_replace() - заменяет в строке указанные символы на другие символы:

str_replace ("что заменить", "чем заменить", $Строка);

Например, чтобы удалить (земенить на пустоту) в строке $string переводы строк, запись будет такая:

$strnew = str_replace ("\n", "", $string); //удаляет в строке $string переводы строки (\n), заменяя их на пустоту

- strcmp() - двоичное сравнение строк (безопасное). Синтаксис следующий:

strcmp ($str_1, $str_2);

Сравниваются две строки: $str_1 и $str_2. Если Строка 1 меньше Строки 2, то функция вернёт значение <0. Если Строка 1 больше Строки 2, то функция вернёт значение >0. Если же обе строки равны, то функция возвращает 0. Такое сравнеие строк применяется в проверке истинности какого-либо условия. Например, в статье Проверка имени пользователя и пароля функцией strcmp() проверялось соответствие введённого в форму пароля с паролем из базы данных.

Приведу здесь фрагмент кода из указанной статьи:

if (strcmp ($newstr, $pass) == 0) /*если строки совпадают, то функция возвращает значение 0*/
//и тогда выведется такое сообщение

{
echo "<p>У Вас есть права зарегистрированного пользователя.</p>";
}
//если же строки не совпадут, то выведется сообщение о том, что пароль неверный
else
{
echo "<p>Ведённый пароль не верный.</p>";
}
}

- stripslashes() - удаляет слеши из строки.

stripslashes($string); //вернёт строку с вырезанными слешами (если таковые, разумеется, имелись). Двойные слеши будут заменены на одинарные.

- strrev() - переворачивает строку. Синтаксис такой:

strrev ($string);

Пример:

$string = "привет!";
echo strrev($string);

На экран выведется:

!тевирп.

- strtolower() - перевоит все символы строки в нижний регистр. Синтаксис:

strtolower($Строка);

Например:

$string = "Я помню ЧУДНОЕ МГНОВЕНЬЕ: передо мной ЯВИЛАСЬ ТЫ";
$a = strtolower($string);
echo $a;

На экран выведется:

я помню чудное мгновенье: передо мной явилась ты

- strtoupper() - переводит все символы строки в верхний регистр. (Проверьте это самостоятельно.)

- strtr() - переводит определённые символы. Синтаксис функции strtr() следующий:

strtr (Строка, "что перевести", "во что перевести");

Пример:

$string = "Любое желание растёт из скрытой возможности его осуществить";
$str = strtr($string, " ", "_");
echo $str;

На экран будет выведена фраза, в которой все пробелы будут заменены на нижнее подчёркивание. (Важно! НЕ верьте мне на слово - проверяйте каждый пример на практике!)

- strtok() - разбивает строку на части. Синтаксис функции strtok() следующий:

strtok($Строка, "Разделитель");

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

$string = "Жизнь можно начать с чистого листа, но сам почерк изменить гораздо сложнее"; //определили переменную, присвоив ей строковое значение
$tok = strtok($string, " "); //указали, что строку нужно разделить пробелами
while ($tok) //запускаем цикл, который должен выполняться, пока с строке будут слова
{
echo "$tok<br/>"; //выводим каждое слово, а для нагляднсти делаем это на отдельных строчках
$tok = strtok(" "); //вновь вызываем ту же функцию, чтобы контролировать положение в текущей строке. Причём, обратите внимание, что при повторном вызове функции необходим только один аргумент - разделитель.
}

- substr() - эта функция возвращает часть строки. Синтаксис:

substr($Строка, Старт, Длина);

Возвращаемая строка начинается с символа, находящегося на позиции Старт, ну а параметр Длина указывает на количество возвращаемых символов:

$string = "abcdefgh";
$str = substr($string, 1); //вернёт bcdefgh. Здесь длина не указана, поэтому возвращаются все вимволы после указанной позиции.
$str = substr($string, 1, 3); //вернёт bcd: в отличие от предыдущего примера, длина указана - 3, поэтому и вернётся только три символа
$str = substr($string, -1); //вернёт h; если параметр Старт отрицательный, то отсчёт идёт от конца строки.
$str = substr($string, -2); //вернёт gh
$str = substr($string, -3, 1); //вернёт f
//а теперь выведем на экран:
echo $str1. "<br/>" .$str2. "<br/>" .$str3. "<br/>" .$str4. "<br/>" .$str5;

- ucfirst() - переводит первый символ строки в верхний регистр. Здесь всё просто:

ucfirst($Строка);

- ucwords() - переводит в верхний регистр каждое слово в строке:

ucwords($Строка);

Есть ещё несколько функций для работы со строками, но их назначение более специфично, поэтому о них я расскажу позже.

А также в дальнейших статьях покажу, как применять перечисленный функции на практике - в скриптах, имеющих вполне практическое назначение. Поэтому, если подача материала Вам нравится, но Вы ещё не подписаны ни на одну из наших рассылок, подпишитесь через любую форму, которые находятся в средней и в крайней правой колонках на этой странице. Или - здесь

Успехов.

Автор: Андрей Чернобай

P. S. Подпишитесь на безплатную рассылку Вокруг Сайта и получайте на свой электронный адрес новые уроки по созданию сайта.

Оставьте свой отзыв о статье:



Введите цифровой код с картинки*:

Новое на сайте

Другие статьи...

Видеокурсы

Рассылки

"Вокруг Сайта"
подпишитесь и получайте на свой e-mail уроки, книги, статьи, скрипты, а также подарки и скидки на товары, продаваемые с сайта

SmartResponder.ru
Ваше имя: *
Ваш e-mail: *

"PHP-песочница"
- PHP для начинающих: уроки с подробным анализом скриптов, необходимых для вашего сайта:

PHP-песочница
Подписаться письмом

Разделы Сайта