Обрабатываем строки. Часть 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? Тогда изобретать велосипед и не понадобиться.
цитата: Ltrim – для удаления символов с левой стороны строки, trim – правой.
Исправь на rtrim.
Я не придираюсь, просто за грамотность статей =)
Хорошо, спасибо! Исправил.
мало функций.. судя по другим постам должен много занть их.. а почему нельзя использовать strtolower upper c utf?
Попробуйте и поймете 😉
Всегда пробовал и не понял… помоему я всегда в ютф все делал.. статьи хорошие.. я тоже многоне пишу.. сделал свой сайт тоже коротко обо всем. чтобы запоминать для себя.. может кому то помоч.. короткими советиками. Классно когда нет писанины большой.. хотя в ней часть находишь то, чего нехватает.
Благодарю за информацию. Никогда не задумывался о том, что тримом можно обрезать любые символы, а не только пробелы.