Всем добрый день/вечер/ночь/утро (нужное подчеркнуть)! Сегодня я решил поделиться с вами одной полезной вещью, связанной со строковыми функциями в PHP. Не знаю как вы, а я до сих пор путаю, что делает substr, а что strstr, а что strchr. И вот хоть ты тресни, кроме нескольких функций, все перемешались в голове.
Вспомнить какая функция что значит мне обычно помогала одна базовая книжка по PHP - там коротко, доходчиво и с примерами разобраны основные строковые функции. Однако у этого было несколько минусов.
Во-первых, там была лишь некоторая часть функций работы со строками, в которых были рассмотрены только по одному базовому примеру. Во-вторых книжка всегда была дома, носить её куда-то - был полный дискомфорт, не говоря о том, что из 400-500 страниц нужными были только 3-4.
В связи с этим я решил создать таблицу большинством используемых строковых функций PHP, где было бы всё кратко описано и даны основные примеры и результаты этих примеров. Собственно по результатам примеров и по примерам я обычно и искал нужную мне функцию.
Фрагмент таблицы предлагаю глянуть чуть ниже, чтобы было ясно о чём речь.
Функции substr, str_replace, strpos, strlen, strstr, strtolower, stripslashes, strrpos и др.
Функция |
Краткое описание |
Пример |
Результат примера |
---|---|---|---|
substr |
substr (строка, число [, длина] ) Возвращает часть строки, начинающейся с символа число и количеством символов длина. |
substr("Текстовая строка", 1, 3); substr("Текстовая строка", -10, 3); substr("Текстовая строка", 9, -3); |
екс вая стр |
str_replace |
str_replace (строка1, строка2, строка [, число ]) Заменяет в строке все вхождения строка1 на строка2. Начиная с PHP5 можно задавать число замен. |
str_replace ("%div_name%", "new_id", "<div id='%div_name%'>"); str_replace ( array("Есть", "хорошо"), array("Пить", "плохо"), 'Есть – это хорошо'); |
<div id="new_id"> Пить – это плохо |
strpos |
strpos (строка1, строка2 [, число ]) Возвращает позицию первого вхождения строка2 в строка1. Числом можно задавать номер символа, с которого начинать поиск |
strpos("Текстовая строка", "строка"); |
10 |
strlen |
strlen (строка) Возвращает длину строки |
strlen("Текстовая строка"); |
16 |
strstr |
strstr (строка1, строка2) Возвращает часть строки1 начиная с первого вхождения строки2 до конца строки1. |
strstr("Текстовая строка", "ст"); |
стовая строка |
strtolower |
strtolower (строка) Переводит все символы строки в нижний регистр |
strtolower("Текстовая СТРОКА"); |
текстовая строка |
stripslashes |
stripslashes (строка) Удаляет экранирование символов |
stripslashes("\'Текст\\текст"); |
'Текст\текст |
strrpos |
strrpos (строка1, строка2 [, число ]) Возвращает позицию последнего вхождения строка2 в строка1. Если строка не найдена, то возвращено будет false. Числом можно задавать номер символа, с которого начинать поиск |
strrpos("Текстовая строка", "ст"); |
10 |
Полную таблицу можно посмотреть или же скачать в формате Word по ссылкам ниже (и между прочим бесплатно и без всяких смс - прим.ред.). Распечатывайте и держите под рукой - всегда пригодится =). Конечно, там нет функций форматирования строк и некоторых функций, которые связаны с массивами. Что касается вторых - то будет в будущем сделан пост, похожий на этот, где они и будут рассмотрены
И напоследок кину Вам обоинку широкоформатную с Ford Mustang Shelby GT Convertible. Уж не знаю как Вы, а я обожаю мустангов=).
14/06/2010 at 12:11 Постоянная ссылка Цитировать
Функции работы со строками кстати вызывают больше всего вопросов именно у новичков. К тому же у большинства проблемы с английским, так что здорово, что перевел.
p.s. такой же мустанг, только на кбарио давно стоит на заствке – есть в них что-то
14/06/2010 at 14:11 Постоянная ссылка Цитировать
Спасибо! Хотя в переводе особой заслуги нет, так как в интернете есть сайты с русскоязычными описаниями функций. Я ими руководствовался, но в большинстве случаев переписывал описание, чтобы оно было более понятно, а то иногда без пол литра не разобрать, что они хотели =)
дааа, хорошие машины. да и Генри Форд мировой мужик был.
22/06/2010 at 20:49 Постоянная ссылка Цитировать
Ух ты мануал)))
22/06/2010 at 22:30 Постоянная ссылка Цитировать
Да =)
23/06/2010 at 9:18 Постоянная ссылка Цитировать
Александр, над более серьёзными проектами не задумывались? )
23/06/2010 at 16:38 Постоянная ссылка Цитировать
А я ими и занимаюсь, а блог это так, отдушина =)
23/06/2010 at 17:03 Постоянная ссылка Цитировать
Понимаю, а если не военная тайна, то какими проектами занимаетесь?
23/06/2010 at 19:02 Постоянная ссылка Цитировать
в целом не секрет. сейчас на мне два интернет-магазина, один интересный проект по компьютерам (пока не могу сказать что там да как), один портал по футболу, и ещё пара небольших сайтов, это фиг с ними.
постоянных долгоиграющих проектов в сети не имею и не хочу – у меня на них просто нет времени.
24/10/2011 at 15:14 Постоянная ссылка Цитировать
Клёва, конечно, но всё это бесполезно перед UTF-8.
24/10/2011 at 15:18 Постоянная ссылка Цитировать
интересно было бы узнать, почему вы так считаете?
25/10/2011 at 14:09 Постоянная ссылка Цитировать
По научному, чтоб не было лишних вопросов, стандартные функции работы со строками не работают с символами, они работают с байтами. А теперь делаем вывод, что, например, отдаст strlen(‘Привет мир’) для UTF-8? Правильно – 19, а не 10 как ожидалось.
25/10/2011 at 16:10 Постоянная ссылка Цитировать
хмм, любопытно. иногда приходится пользоваться функциями, но ни разу с проблемами такого типа не сталкивался. хотя, можно в скопе использовать mb_convert_encoding
25/10/2011 at 16:46 Постоянная ссылка Цитировать
Для тех стандартных функций, которые имеют аналоги в расширении mbstring можно настроить mbstring.func_overload и тогда вызов, например, strlen() будет переадресован на mb_strlen(), видимо поэтому вы не испытывали проблем при работе с UTF-8, либо просто не использовались двухбайтовые кодировке и всё обходилось работой с устаревшей windows-1251(koi8-r).
25/10/2011 at 16:52 Постоянная ссылка Цитировать
скорее всего на сервере был включен mbstring.func_overload, т.к. уже пару лет с 1251 лично сам дел не имею (кроме тех случаев, когда работаю над чем-то сделанным и оно в нём).
спасибо за просвещение! =)
25/10/2011 at 17:28 Постоянная ссылка Цитировать
Всегда пожалуйста
12/10/2012 at 6:53 Постоянная ссылка Цитировать
я не могу молчать, как же красиво таки сверстано тут у вас все…=)
12/10/2012 at 10:36 Постоянная ссылка Цитировать
Спасибо на добром слове =)
03/04/2016 at 0:44 Постоянная ссылка Цитировать
Спасибо! Сайт в закладочки, очень полезны такие таблицы в качестве шпоргалок, ждем еще!
03/04/2016 at 8:46 Постоянная ссылка Цитировать
Спасибо большое за отзыв. Но, увы, шанс того, что блог будет развиваться дальше, минимален (