Обрабатываем строки. Часть 1.

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

Удаление ненужных символов

Первое что можно сделать в обработке строк это удаление всех пробелов из начала и из конца строки. Для этого используется функция trim:

<?
$str = “  !!Это простая строка\r\n!!   “;
$str = trim($str);
echo $str;
// Выведет:
// !!Это простая строка!!
?>

Под пробелами здесь понимается не только символ пробела, а все пробельные символы - табуляция, перевод строки (\n), возврат каретки (\r), нулевой байт (\0).

Если надо удалить не только пробельные символы из конца и начала строки, то просто задаем эти символы вторым аргументом функции:

<?
$num = ‘  00123.4560000  ’;
$num = trim($num, ‘ 0’);
echo $num;
// Выведет:
// 123.456
?>

Таким образом, мы сказали интерпретатору PHP, что из строки, в которой записано число с плавающей точкой, нужно убрать все незначащие нули и пробелы.

Так же есть функции для удаления этих символов только с одной стороны строки (только из начала или конца) - ltrim (rtrim). ltrim – для удаления символов с левой стороны строки, rtrim – с правой стороны.

Управление регистром символов

Так же есть функции для перевода всей строки в верхний или нижний регистры. Пожалуйста:

<?
$str = ‘БоЛьШие И мАлЕньКие буКвЫ’;
$str = strtolower($str);
echo $str;
// Выведет:
// большие и маленькие буквы
$str = strtoupper($str);
echo $str;
// Выведет:
// БОЛЬШИЕ И МАЛЕНЬКИЕ БУКВЫ
?>

Только при этом нужно учитывать кодировку строки. Например, символы в кодировке UTF-8 правильно преобразованы функциями strtolower/strtoupper не будут. Для этого нужно использовать аналоги этих функций, которые точно будут работать:

mb_strtolower($str, ‘utf-8’);
mb_strtoupper($str, ‘utf-8’);

Кроме этих функций в PHP есть еще две очень полезные функции:

ucfirst - преобразует первый символ строки в верхний регистр;
ucwords - преобразует в верхний регистр первый символ каждого слова в строке.

<?
$str  = 'hello world!';
$str2 = ucfirst($str); // Hello world!
$str3 = ucwords($str); // Hello World!
?>

Длина строки

Для обработки строк иногда требуется знать ее длину. И наверно во всех языках программирования есть процедура для этого. В PHP она называется strlen:

<?
$str = ‘строка’;
echo strlen($str); // выведет: 6
?>

Но следует помнить о кодировке, и при использовании кодировки UTF-8 корректнее будет использовать функцию mb_strlen:

<?
$str = ‘строка’;
echo mb_strlen($str, ‘utf-8’); // выведет: 6
?>

Ну вот, в принципе, наиболее часто используемые функции я рассмотрел. На самом деле их гораздо больше, я пока не сталкивался с другими. Позже, когда наберусь немного опыта, напишу обзор других функций для работы со строками.

PHP вообще обладает богатым набором функций на любой вкус. Поэтому прежде чем изобретать велосипед, посмотрите в документацию по PHP - может быть нужную вам функцию, уже написали до вас и оптимизировали под PHP? :) Тогда изобретать велосипед и не понадобиться.





Читайте также:



6 Ответов на “Обрабатываем строки. Часть 1.”

  1. Klansi

    цитата: Ltrim – для удаления символов с левой стороны строки, trim – правой.
    Исправь на rtrim.
    Я не придираюсь, просто за грамотность статей =)

  2. novice

    Хорошо, спасибо! :) Исправил.

  3. мало функций.. судя по другим постам должен много занть их.. а почему нельзя использовать strtolower upper c utf?

  4. novice

    Попробуйте и поймете 😉

  5. Всегда пробовал и не понял… помоему я всегда в ютф все делал.. :) статьи хорошие.. я тоже многоне пишу.. сделал свой сайт тоже коротко обо всем. чтобы запоминать для себя.. может кому то помоч.. короткими советиками. Классно когда нет писанины большой.. хотя в ней часть находишь то, чего нехватает.

  6. Благодарю за информацию. Никогда не задумывался о том, что тримом можно обрезать любые символы, а не только пробелы.


© Copyright. . I-Novice. All Rights Reserved. Terms | Site Map