Php функции работы со строками. Строковые функции PHP

Функции для работы со строками

Для работы со строками в PHP существует множество полезных функций.

Кратко разберем часть функций для работы со строками.

Базовые строковые функции

strlen(string $st)

Одна из наиболее полезных функций. Возвращает просто длину строки, т. е., сколько символов содержится в $st . Строка может содержать любые символы, в том числе и с нулевым кодом (что запрещено в Си). Пример:

$x = "Hello!";
echo strlen($x); // Выводит 6

strpos(string $where, string $what, int $fromwhere=0)

Пытается найти в строке $where подстроку (то есть последовательность символов) $what и в случае успеха возвращает позицию (индекс) этой подстроки в строке. Необязательный параметр $fromwhere можно задавать, если поиск нужно вести не с начала строки $from , а с какой-то другой позиции. В этом случае следует эту позицию передать в $fromwhere . Если подстроку найти не удалось, функция возвращает false . Однако будьте внимательны, проверяя результат вызова strpos() на false - используйте для этого только оператор === . Пример:

echo strpos("Hello","el"); // Выводит 1

И еще пример:

if (strpos("Norway","rwa") !== false) echo "Строка rwa есть в Norway";
// При сравнении используйте операторы тождественных сравнений (===) (!==) чтобы избежать проблем с определением типов

substr(string $str, int $start [,int $length])

Данная функция тоже востребуется очень часто. Ее назначение - возвращать участок строки $str , начиная с позиции $start и длиной $length . Если $length не задана, то подразумевается подстрока от $start до конца строки $str . Если $start больше, чем длина строки, или же значение $length равно нулю, то возвращается пустая подстрока. Однако эта функция может делать и еще довольно полезные вещи. К примеру, если мы передадим в $start отрицательное число, то будет считаться, что это число является индексом подстроки, но только отсчитываемым от конца $str (например, -1 означает "начиная с последнего символа строки"). Параметр $length , если он задан, тоже может быть отрицательным. В этом случае последним символом возвращенной подстроки будет символ из $str с индексом $length , определяемым от конца строки. Примеры:

$str = "Programmer";
echo substr($str,0,2); // Выводит Pr
echo substr($str,-3,3); // Выводит mer

strcmp(string $str1, string $str2)

Сравнивает две строки посимвольно (точнее, побайтово) и возвращает: 0 , если строки полностью совпадают; -1 , если строка $str1 лексикографически меньше $str2 ; и 1 , если, наоборот, $str1 "больше" $str2 . Так как сравнение идет побайтово, то регистр символов влияет на результаты сравнений.

strcasecmp(string $str1, string $str2)

То же самое, что и strcmp(), только при работе не учитывается регистр букв. Например, с точки зрения этой функции "ab" и "AB" равны.

Функции для работы с блоками текста

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

str_replace(string $from, string $to, string $str)

Заменяет в строке $str все вхождения подстроки $from (с учетом регистра) на $to и возвращает результат. Исходная строка, переданная третьим параметром, при этом не меняется. Эта функция работает значительно быстрее, чем ereg_replace() , которая используется при работе с регулярными выражениями PHP, и ее часто используют, если нет необходимости в каких-то экзотических правилах поиска подстроки. Например, вот так мы можем заместить все символы перевода строки на их HTML эквивалент - тэг
:

$st=str_replace("\n","
\n",$str)

Как видим, то, что в строке
\n тоже есть символ перевода строки, никак не влияет на работу функции, т. е. функция производит лишь однократный проход по строке. Для решения описанной задачи также применима функция nl2br() , которая работает чуть быстрее.

string nl2br(string $string)

Заменяет в строке все символы новой строки \n на
\n и возвращает результат. Исходная строка не изменяется. Обратите внимание на то, что символы \r, которые присутствуют в конце строки текстовых файлов Windows, этой функцией никак не учитываются, а потому остаются на старом месте.

WordWrap(string $str, int $width=75, string $break="\n")

Эта функция, появившаяся в PHP4 , оказывается невероятно полезной, например, при форматировании текста письма перед автоматической отправкой его адресату при помощи mail() . Она разбивает блок текста $str на несколько строк, завершаемых символами $break , так, чтобы на одной строке было не более $width букв. Разбиение происходит по границе слова, так что текст остается читаемым. Возвращается получившаяся строка с символами перевода строки, заданными в $break . Пример использования:

$ str = "Это текст электронного письма, которое нужно будет отправить адресату..." ;
// Разбиваем текст по 20 символов
$ str = WordWrap ($ str , 20 , "
" );
echo $ str ;
// Выводит:
/* Это текст
электронного письма,
которое нужно будет
отправить
адресату... */
?>

strip_tags (string $str [, string $allowable_tags])

Еще одна полезная функция для работы со строками. Эта функция удаляет из строки все тэги и возвращает результат. В параметре $allowable_tags можно передать тэги, которые не следует удалять из строки. Они должны перечисляться вплотную друг к другу. Примеры:

$stripped = strip_tags ($str); // Удаляет все html - теги из строки (текста)
$stripped = strip_tags($str, ""); // Удалит все html - теги, кроме html - тегов <head> и <title></p> <h3>Функции для работы с отдельными символами</h3> <p>Как и в других языках программирования, в PHP можно работать с символами строк отдельно.</p> <p>Обратиться к любому символу строки можно по его индексу:</p> <p>$str = "PHP";<br> echo $str; // Выводит "P"</p> <p><b>chr(int $code) </b></p> <p>Данная функция возвращает строку, состоящую из символа с кодом $code . Пример:</p> <p>echo chr(75); //Выводит K</p> <p><b>ord($char) </b></p> <p>Данная функция возвращает код символа $char . Вот пример:</p> <p>echo ord("A"); // Выводит 65 - код буквы "A"</p> <h3>Функции удаления пробелов</h3> <p>Иногда трудно даже представить, какими могут быть странными пользователи, если дать им в руки клавиатуру и попросить напечатать на ней какое-нибудь слово. Так как клавиша пробела - самая большая, то пользователи имеют обыкновение нажимать ее в самые невероятные моменты. Этому способствует также и тот факт, что символ с кодом 32, обозначающий пробел, как вы знаете, на экране не виден. Если программа не способна обработать описанную ситуацию, то она, в лучшем случае после тягостного молчания отобразит в браузере что-нибудь типа "неверные входные данные", а в худшем - сделает при этом что-нибудь необратимое.</p><p><b>trim(string $str) </b></p> <p>Возвращает копию $str, только с удаленными ведущими и концевыми пробельными символами. Под пробельными символами я здесь и далее подразумеваю: пробел " ", символ перевода строки \n, символ возврата каретки \r и символ табуляции \t. Например, вызов trim(" test\n ") вернет строку "test". Эта функция используется очень широко. Старайтесь применять ее везде, где есть хоть малейшее подозрение на наличие ошибочных пробелов. Поскольку работает она очень быстро.</p> <p><b>ltrim(string $st) </b></p> <p>То же, что и trim() , только удаляет исключительно ведущие пробелы, а концевые не трогает. Используется гораздо реже.</p> <p><b>chop(string $st) </b></p> <p>Удаляет только концевые пробелы, ведущие не трогает.</p> <h3>Функции преобразования символов</h3> <p>Web-программирование - одна из тех областей, в которых постоянно приходится манипулировать строками: разрывать их, добавлять и удалять пробелы, перекодировать в разные кодировки, наконец, URL- кодировать и декодировать. В PHP реализовать все эти действия вручную, используя только уже описанные примитивы, просто невозможно из соображений быстродействия. Поэтому-то и существуют подобные встроенные функции.</p> <p><b>strtr(string $str, string $from, string $to) </b></p> <p>Эта функция применяется не столь широко, но все-таки иногда она бывает довольно полезной. Она заменяет в строке $str все символы, встречающиеся в $from , на их "парные" (то есть расположенные в тех же позициях, что и во $from) из $to .</p> <p>Следующие несколько функций предназначены для быстрого URL-кодирования и декодирования.</p> <p>URL-кодирование необходимо для передачи данных через интернет. Например, такое кодирование целесообразно, если вы передаете русскоязычную информацию в качестве параметра скрипта. Также подобное кодирование можно выполнить и для файла, чтобы не возникало коллизий из-за отсутствия поддержки 8-битных кодировок некоторыми серверами. Вот эти функции:</p> <p><b>UrlEncode(string $str) </b></p> <p>Функция URL-кодирует строку $str и возвращает результат. Эту функцию удобно применять, если вы, например, хотите динамически сформировать ссылку <a href=...> на какой-то сценарий, но не уверены, что его параметры содержат только алфавитно-цифровые символы. В этом случае воспользуйтесь функцией так:</p> <p>echo "<a href=/script.php?param=".UrlEncode($UserData);</p> <p>Теперь, даже если переменная $UserData включает символы = , & или даже, все равно сценарию будут переданы корректные данные.</p> <p><b>UrlDecode(string $st) </b></p> <p>Производит URL-декодирование строки. В принципе, используется значительно реже, чем UrlEncode() , потому что PHP и так умеет перекодировать входные данные автоматически.</p> <p><b>RawUrlEncode(string $st) </b></p> <p>Почти полностью аналогична UrlEncode() , но только пробелы не преобразуются в <b>+ </b>, как это делается при передаче данных из формы, а воспринимаются как обычные неалфавитно-цифровые символы. Впрочем, этот метод не порождает никаких дополнительных несовместимостей в коде.</p> <p><b>RawUrlDecode(string $st) </b></p> <p>Аналогична UrlDecode() , но не воспринимает <b>+ </b> как пробел.</p> <p><b>HtmlSpecialChars(string $str) </b></p> <p>Это функция, которая обычно используется в комбинации с echo . Основное ее назначение - гарантировать, что в выводимой строке ни один участок не будет воспринят как тэг.</p> <p>Заменяет в строке некоторые символы (такие как амперсант, кавычки и знаки "больше" и "меньше") на их HTML-эквиваленты, так, чтобы они выглядели на странице "самими собой". Самое типичное применение этой функции - формирование параметра value в различных элементах формы, чтобы не было никаких проблем с кавычками, или же вывод сообщения в гостевой книге, если вставлять тэги пользователю запрещено.</p> <p><b>StripSlashes(string $str) </b></p> <p>Заменяет в строке $str некоторые предваренные слэшем символы на их однокодовые эквиваленты. Это относится к следующим символам: <b>" </b>, <b>" </b>, <b>\ </b> и никаким другим.</p> <p><b>AddSlashes(string $str) </b></p> <p>Вставляет слэши только перед следующими символами: ", " и \. Функцию очень удобно использовать при вызове <b>eval() </b> (эта функция выполняет строку, переданную ей в параметрах, так, как будто имеет дело с небольшой PHP-программой.</p> <h3>Функции изменения регистра</h3> <p>Довольно часто нам приходится переводить какие-то строки, скажем, в верхний регистр, т. е. делать все прописные буквы в строке заглавными. В принципе, для этой цели можно было бы воспользоваться функцией strtr() , рассмотренной выше, но она все же будет работать не так быстро, как нам иногда хотелось бы. В PHP есть функции, которые предназначены специально для таких нужд. Вот они:</p> <p><b>strtolower(string $str) </b></p> <p>Преобразует строку в нижний регистр. Возвращает результат перевода.</p> <p>Надо заметить, что при неправильной настройке локали (это набор правил по переводу символов из одного регистра в другой, переводу даты и времени, денежных единиц и т. д.) функция будет выдавать неправильные результаты при работе с буквами кириллицы.<br> Возможно, в несложных программах, а также если нет уверенности в поддержке соответствующей локали операционной системой, проще будет воспользоваться "ручным" преобразованием символов, задействуя функцию strtr() :</p> <p>$st=strtr($st, "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩљЫЬЭЮЯ", "абвгдеёжзийклмнопрстуфхцчшщъыьэюя");</p> <p>Главное достоинство данного способа - то, что в случае проблем с кодировкой для восстановления работоспособности сценария вам придется всего лишь преобразовать его в ту же кодировку, в которой у вас хранятся документы на сервере.</p> <p><b>strtoupper(string $str) </b></p> <p>Переводит строку в верхний регистр. Возвращает результат преобразования. Эта функции также прекрасно работает со строками, составленными из латиницы, но с кирилицей может возникнуть все та же проблема.</p> <h3>Установка локали (локальных настроек)</h3> <p>Локалью будем называть совокупность локальных настроек системы, таких как формат даты и времени, язык, кодировка.</p> <p>Настройки локали сильно зависят от операционной системы.</p> <p>Для установки локали используется функция SetLocale() :</p> <p><b>SetLocale(string $category, string $locale) </b></p> <p>Функция устанавливает текущую локаль, с которой будут работать функции преобразования регистра символов, вывода даты-времени и.т.д. Вообще говоря, для каждой категории функций локаль определяется отдельно и выглядит по-разному. То, какую именно категорию функций затронет вызов SetLocale() , задается в параметре $category . Он может принимать следующие строковые значения:</p> <p>LC_CTYPE - активизирует указанную локаль для функций перевода в верх-<br> ний/нижний регистры;<br> LC_NUMERIC - активизирует локаль для функций форматирования дробных чи-<br> сел - а именно, задает разделитель целой и дробной части в числах;<br> LC_TIME - задает формат вывода даты и времени по умолчанию;<br> LC_ALL - устанавливает все вышеперечисленные режимы.</p> <p>Теперь о параметре $locale . Как известно, каждая локаль, установленная в системе, имеет свое уникальное имя, по которому к ней можно обратиться. Именно оно и фиксируется в этом параметре. Однако, есть два важных исключения из этого правила. Во-первых, если величина $locale равна пустой строке "", то устанавливается та локаль, которая указана в глобальной переменной окружения с именем, совпадающим с именем категории $category (или LANG - она практически всегда присутствует в Unix). Во вторых, если в этом параметре передается 0, то новая локаль не устанавливается, а просто возвращается имя текущей локали для указанного режима.</p> <p>К сожалению, имена локалей задаются при настройке операционной системы, и для них, по-видимому, не существует стандартов. Выясните у своего хостинг-провайдера, как называются локали для разных кодировок русских символов. Но, если следующий фрагмент работает у вашего хостинг-провайдера, это не означает, что он заработает, например, под Windows:</p> <p>setlocale("LC_CTYPE","ru_SU.KOI8-R");</p> <p>Здесь вызов устанавливает таблицу замены регистра букв в соответствии с кодировкой KOI8-R.</p> <p>По правде говоря, локаль - вещь довольно непредсказуемая и довольно плохо переносимая между операционными системами. Так что, если ваш сценарий не очень велик, задумайтесь: возможно, лучше будет искать обходной путь, например, используя strtr() , а не рассчитывать на локаль.</p> <h3>Функции преобразования кодировок</h3> <p>Часто встречается ситуация, когда нам требуется преобразовать строку из одной кодировки кириллицы в другую. Например, мы в программе сменили локаль: была кодировка windows , а стала - KOI8-R . Но строки-то остались по-прежнему в кодировке WIN-1251 , а значит, для правильной работы с ними нам нужно их перекодировать в KOI8-R. Для этого и служит функция преобразования кодировок.</p> <p><b>convert_cyr_string(string $str, char $from, char $to); </b></p> <p>Функция переводит строку $str из кодировки $from в кодировку $to. Конечно, это имеет смысл только для строк, содержащих "русские" буквы, т. к. латиница во всех кодировках выглядит одинаково. Разумеется, кодировка $from должна совпадать с истинной кодировкой строки, иначе результат получится неверным. Значения $from и $to - один символ, определяющий кодировку:</p> <p>k - koi8-r<br> w - windows-1251<br> i - iso8859-5<br> a - x-cp866<br> d - x-cp866<br> m - x-mac-cyrillic</p> <p>Функция работает достаточно быстро, так что ее вполне можно применять, скажем, для перекодировки писем в нужную форму перед их отправкой по электронной почте.</p> <h3>Функции форматных преобразований строк</h3> <p>Как мы знаем, переменные в строках PHP интерполируются, поэтому практически всегда задача "смешивания" текста со значениями переменных не является проблемой. Например, мы можем спокойно написать что-то вроде:</p> <p>echo "Привет, $name! Вам $age лет.";</p> <p>В Си для аналогичных целей используется следующий код:</p> <p>printf("Привет, %s! Вам %s лет",name,age);</p> <p>Язык PHP также поддерживает ряд функций, использующих такой же синтаксис, как и их Си -эквиваленты. Бывают случаи, когда их применение дает наиболее красивое и лаконичное решение, хотя это и случается довольно нечасто.</p> <p><b>sprintf(string $format [, mixed args, ...]) </b></p> <p>Эта функция - аналог функции sprintf() в Си. Она возвращает строку, составленную на основе строки форматирования, содержащей некоторые специальные символы, которые будут впоследствии заменены на значения соответствующих переменных из списка аргументов.<br> Строка форматирования $format может включать в себя команды форматирования, предваренные символом % . Все остальные символы копируются в выходную строку как есть. Каждый спецификатор формата (то есть, символ % и следующие за ним команды) соответствует одному, и только одному параметру, указанному после параметра $format . Если же нужно поместить в текст % как обычный символ, необходимо его удвоить:</p> <p>echo sprintf("The percentage was %d%%",$percentage);</p> <p>Каждый спецификатор формата включает максимум пять элементов (в порядке их следования после символа %):</p> <p>>>> Необязательный спецификатор размера поля, который указывает, сколько символов будет отведено под выводимую величину. В качестве символов-заполнителей (если значение имеет меньший размер, чем размер поля для его вывода) может использоваться пробел или 0, по умолчанию подставляется пробел. Можно задать любой другой символ-наполнитель, если указать его в строке форматирования, предварив апострофом ".</p> <p>>>> Опциональный спецификатор выравнивания, определяющий, будет результат выровнен по правому или по левому краю поля. По умолчанию производится выравнивание по правому краю, однако можно указать и левое выравнивание, задав символ - (минус).</p> <p>>>> Необязательное число, определяющее размер поля для вывода величины. Если результат не будет в поле помещаться, то он "вылезет" за края этого поля, но не будет усечен.</p> <p>>>> Необязательное число, предваренное точкой ".", предписывающее, сколько знаков после запятой будет в результирующей строке. Этот спецификатор учитывается только в том случае, если происходит вывод числа с плавающей точкой, в противном случае он игнорируется.</p> <p>>>> Наконец, обязательный (заметьте - единственный обязательный!) спецификатор типа величины, которая будет помещена в выходную строку:</p> <p><b>b </b> - очередной аргумент из списка выводится как двоичное целое число;<br><b>c </b> - выводится символ с указанным в аргументе кодом;<br><b>d </b> - целое число;<br><b>f </b> - число с плавающей точкой;<br><b>o </b> - восьмеричное целое число;<br><b>s </b> - строка символов;<br><b>x </b> - шестнадцатеричное целое число с маленькими буквами <i>a-z </i>;<br><b>X </b> - шестнадцатеричное число с большими буквами <i>A-Z </i>.</p> <p>Вот как можно указать точность представления чисел с плавающей точкой:</p> <p>$money1 = 68.75;<br> $money2 = 54.35;<br> $money = $money1 + $money2;<br> // echo $money выведет "123.1"...<br> $formatted = sprintf ("%01.2f", $money);<br> // echo $formatted выведет "123.10" !</p> <p>Вот пример вывода целого числа, предваренного нужным количеством нулей:</p> <p>$isodate=sprintf("%04d-%02d-%02d",$year,$month,$day);</p> <p><b>printf(string $format [, mixed args, ...]) </b></p> <p>Делает то же самое, что и sprintf() , только результирующая строка не возвращается, а направляется в браузер пользователя.</p> <p><b>number_format(float $number, int $decimals, string $dec_point=".", string $thousands_sep=","); </b></p> <p>Эта функция форматирует число с плавающей точкой с разделением его на триады с указанной точностью. Она может быть вызвана с двумя или четырьмя аргументами, но не с тремя! Параметр $decimals задает, сколько цифр после запятой должно быть у числа в выходной строке. Параметр $dec_point представляет собой разделитель целой и дробной частей, а параметр $thousands_sep - разделитель триад в числе (если указать на его месте пустую строку, то триады не отделяются друг от друга).</p> <p>В PHP существует еще несколько функций для выполнения форматных преобразований, среди них - <b>sscanf() </b> и <b>fscanf() </b>, которые часто применяются в Си. Однако в PHP их использование весьма ограничено: чаще всего для разбора строк оказывается гораздо выгоднее привлечь регулярные выражения или функцию <b>explode() </b>.</p> <h3>Хэш-функции</h3> <p><b>md5(string $str) </b></p> <p>Возвращает хэш-код строки $str , основанный на алгоритме корпорации RSA Data Security под названием " MD5 Message-Digest Algorithm ". Хэш-код - это просто строка, практически уникальная для каждой из строк $str . То есть вероятность того, что две разные строки, переданные в $str , дадут нам одинаковый хэш-код, стремится к нулю.</p> <p>Если длина строки $str может достигать нескольких тысяч символов, то ее MD5-код занимает максимум 32 символа.</p> <p>Для чего нужен хэш-код и, в частности, алгоритм MD5 ? Например, для проверки паролей на истинность.</p> <p>Пусть, к примеру, у нас есть система со многими пользователями, каждый из которых имеет свой пароль. Можно, конечно, хранить все эти пароли в обычном виде, или зашифровать их каким-нибудь способом, но тогда велика вероятность того, что в один прекрасный день этот файл с паролями у вас украдут.</p> <p>Сделаем так: в файле паролей будем хранить не сами пароли, а их (MD5) хэш-коды. При попытке какого либо пользователя войти в систему мы вычислим хэш-код только что введенного им пароля и сравним его с тем, который записан у нас в базе данных. Если коды совпадут, значит, все в порядке, а если нет - что ж, извините...<br> Конечно, при вычислении хэш-кода какая-то часть информации о строке $str безвозвратно теряется. И именно это позволяет нам не опасаться, что злоумышленник, получивший файл паролей, сможет его когда-нибудь расшифровать. Ведь в нем нет самих паролей, нет даже их каких-то связных частей!</p> <p>Пример использования алгоритма хеширования MD5:</p> <p><? php <br>$ pass_a = "MySecret" ; <br>$ pass_b = "MySecret" ; <br><span>// Выводим хеш-код строки MySecret ($pass_a) - исходный пароль </span><br>echo <span>"<b>Хеш-код исходного пароля "$pass_a":</b><b style=\"color:green\">" </span>. md5 ($ pass_a ). "</b><br>" ; <br><span>// Выводим хеш-код строки MySecret ($pass_b) - верифицируемый пароль </span><br>echo <span>"<b>Хеш-код верифицируемого пароля "$pass_b":</b><b style=\"color:green\">" </span>. md5 ($ pass_b ). "</b><br>" ; <br><span>// Сравниваем хеш-коды MD5 исходного и верифицируемого пароля </span><br>echo <span>"<h3>Проверяем истинность введенного пароля:</h3>" </span>; <br>if (md5 ($ pass_a )=== md5 ($ pass_b )) echo <span>"<h3 style=\"color:green\">Пароль верный! (Хеш-коды совпадают)</h3>" </span>; <br>else echo <span>"<h3 style=\"color:red\">Пароль неверный! (Хеш-коды не совпадают)</h3>" </span><br><span>// В данной ситуации выводит: Пароль верный! (Хеш-коды совпадают) </span><br><span>// Попробуйте изменить значение строки $pass_b:) </span><br>?> </p> <p><b>crc32(string $str) </b></p> <p>Функция crc32() вычисляет 32-битную контрольную сумму строки $str. То есть, результат ее работы - 32 битное (4-байтовое) целое число. Эта функция работает гораздо быстрее md5(), но в то же время выдает гораздо менее надежные "хэш-коды" для строки.</p> <h3>Функции сброса буфера вывода</h3> <p>Эта функция имеет очень и очень отдаленное отношение к работе со строками, но она еще дальше отстоит от других функций.</p> <p>Начнем издалека: обычно при использовании echo данные не прямо сразу отправляются клиенту, а накапливаются в специальном буфере, чтобы потом транспортироваться большой "пачкой". Так получается быстрее.</p> <p>Однако, иногда бывает нужно досрочно отправить все данные из буфера пользователю, например, если вы что-то выводите в реальном времени (так зачастую работают чаты). Вот тут-то вам и поможет функция flush() , которая отправляет содержимое буфера echo в браузер пользователя.</p> <table width="600" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#000066" class="mtx1"><tr><td bgcolor="#CAEEFF"> <b><<< Назад </b> <br>(Строки (Часть 2)) </td> <td bgcolor="#CAEEFF"> <b>Содержание </b> </td> <td bgcolor="#CAEEFF"> <b>Вперед >>> </b> <br>(Строки (Часть 4)) </td> </tr></table><br><table width="470" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#000066" class="mtx1"><tr><td bgcolor="#CAEEFF"> Есть еще вопросы или что-то непонятно - добро пожаловать на наш </td> </tr><tr><td bgcolor="#F7F7F7"> </td> </tr><tr><td bgcolor="#CAEEFF"> <table width="100%"><tr><td width="100%"></td></tr></table></td></tr></table> <p>Очень часто требуется обрабатывать введенные пользователем данные в текстовые поля. Для этого и существуют <b>строковые функции в PHP </b>. С их помощью мы можем обрабатывать текстовую информацию так, как нам нужно. В этой статье мы в начале разберем основные строковые функции, а потом напишем небольшой пример, для закрепления.</p> <p><b>Вот список основных, и самых используемых строковых функций в php: </b></p> <ol><li><b>srelen ("текст") </b> — считает количество символов в строке. Вот небольшой пример: <?php echo strlen("http://ox2.ru/"); //На экране появится 14 ?></li> <li><b>str_replace("что заменять", "на что заменять", "текст"); </b> - функция нужна для замены подстроки в строке. Например, нам нужно заменить слово студия на «ля-ля-ля», в предложении: <i>«Дизайн студия OX2 на рынке 20 лет» </i> <?php echo str_replace("студия", "ля-ля-ля", "Дизайн студия OX2 на рынке 20 лет"); ?> На экране увидим: <i>«Дизайн ля-ля-ля OX2 на рынке 20 лет » </i></li> <li><b>trim ("текст", "символы") </b> — удаляет символы по краям. Например, нам нужно удалить по-краям пробелы и запятые в строке - <i>« , Дизайн студия ox2.ru , ", ", » </i>. Для этого напишем код: <?php echo trim(" , Дизайн студия ox2.ru , ", ", "); ?> Первый параметр строка, второй — символы, которые нужно удалить по краям (если не указывать второй параметр, то обрезаться будут только пробелы). <br>На экране увидим <i>«Дизайн студия ox2.ru» </i>, без пробелов и запятых. Есть аналогичные <b>функции ltrim </b> — удаляет символы слева, и <b>rtrim </b> — справа. <br><b>Функция очень часто используется </b> при создании интернет-магазинов, например при авторизации, чтобы пользователь при копировании пароля из блокнота <b>случайно не вставил лишние пробелы </b> или другие знаки.</li> <li><b>substr("Строка", "Начальная позиция", "Конечная позиция"); </b> - возвращает часть строки. Например, нам нужно в строке <i>"Дизайн студия ox2.ru занимается созданием сайтов и интернет-магазинов" </i> обрезать все лишнее, и оставить только <i></i>, для этого напишем код: <?php echo substr("Дизайн студия ox2.ru занимается созданием сайтов и интернет-магазинов", 14, 34); ?> Вырезаем подстроку, начинаю с 14-ого символа, и заканчивая 34. На экране увидим <i>«ox2.ru занимается созданием сайтов» </i>. Если последний параметр (34) не указывать, то текст будет вырезан с 14-ой позиции до конца строки.</li> <li><b>strpos("Строка", "подстрока", позиция начального символа); </b> — возвращает позицию найденной подстроки в строке. Например, нам нужно узнать позицию слова <i>"ox2" </i> в строке <i>"Компания ox2.ru умеет создавать интернет магазины. В дизайн студии ox2.ru вы можете заказать сайт" </i>, пишем код: <?php echo strpos("Компания ox2.ru умеет создавать интернет магазины. В дизайн студии ox2.ru вы можете заказать сайт", "ox2"); ?> На экране увидим 9, т.к. с 9-ого символа начинается первое вхождение слова <i>ox2 </i>. Если указать 3-ий параметр то поиск вхождения будет с этой позиции. <br>Так же есть <b>функция strrpos </b>, она ищет справа налево. Если в этом примере указать вместо strpos - strrpos, то на экране увидим 67, т.к. справа первое вхождение начинается с 67-ого символа.</li> </ol><p>Теперь напишем пример, для закрепления материала. В нашем скрипте <b>будем обрабатывать данные из текстового поля </b> «Адрес сайта:». Адрес сайта можно ввести так: «http://ox2.ru/», можно так «www.ox2.ru», можно так: «ox2.ru/», и т.д. Вариантом достаточно много. А для нашего интернет-магазина обязательное условие, это хранение всех данных о пользователе в едином формате («ox2.ru», без http, www, пробелов и слэшей по краям!).</p><p> <?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""; ?> </p><p>Конечно это не самый удачный вариант, использовать такое количество строковых функций для обрезания лишнего, можно воспользоваться той же <b>функцией str_replace </b>:</p><p> <?php echo str_replace("www.", "", str_replace("http://", "", trim(" http://www.ox2.ru/ ", "/ "))); ?> </p><p>Но цель урока показать использование этих функций в связке.</p> <p>Работать со строковыми функциями приходиться не только если цены на создание сайтов высокие, в эконом сайтах они тоже почти всегда используются.</p> <p>При разработке интернет магазинов очень часто требуется обрабатывать введенные пользователем данные в текстовые поля. Для этого и существуют строковые функции в PHP. С их помощью мы можем обрабатывать текстовую информацию так, как нам нужно. В этой статье мы в начале разберем основные строковые функции, а потом напишем небольшой пример, для закрепления.</p> OX2 2014-10-05 2014-10-05 <p>Программистам очень часто приходится иметь дело с различными функциями работы со строками в php. В разных справочниках представлены все функции, но я хотел бы ограничиться только основными из них. </p><h2>PHP функция substr - получить часть строки</h2> Когда из строки вам необходимо выделить отрывок заданной длины начиная с заданной позиции, на помощь приходит функция substr. <?php $text="нас интересует кусок этого текста"; $cut=substr($text,4,10); echo $cut;//интересует $long=substr($text,15); echo $long;//кусок этого текста $first=substr($text,0,1); //первый символ строки $last=substr($text,strlen($text)-1); //последний символ строки?> В этой функции через запятую передаются: текст, стартовая позиция и количество символов. Последний параметр не обязателен, и в случае его отсутствия результатом работы функции будет отрывок исходного текста от стартовой позиции до конца строки. <h2>PHP функция strlen - узнать длину строки</h2> Эта функция возвращает длину исходной строки в виде целого числа. <?php $text="нас интересует длина строки"; $len=strlen($text); echo $len; //28 ?> Этой функцией вы сможете проверить длину введенных пользователем данных, а может быть что-то еще. <h2>PHP функция trim - убрать лишние пробелы по краям строки</h2> Функция trim удаляет по краям строки любые пробельные символы, в том числе и символ перевода строки. Так же существуют функции rtrim и ltrim, которые удаляют пробелы вконце иили вначале строки. <?php $text=" нас интересует длина строки "; $text=trim($text);//удаляет пробелы с обеих сторон строки $text=rtrim($text);//удаляет пробелы справа т.е. вконце строки $text=ltrim($text);//удаляет пробелы слева, т.е. вначале строки?> <h2>PHP функция strpos - осуществляет поиск в строке</h2> функция strpos ищет подстроку в строке и в случае успеха возвращает позицию начала этой подстроки. После нахождения первой подстроки поиск прекращается. <?php $text="нас интересует где находится подстрока"; $sub="рес"; $pos1=strpos($text,$sub);//ищет с начала строки $pos2=strpos($text,$sub,5);//если поиск нужно начать не с начала строки, используем третий параметр?> Порядок аргументов в функции, как вы уже догодались, таков: исходная строка, подстрока, стартовая позиция. Третий параметр не обязателен, но постарайтесь запомнить что он есть. <h2>PHP функция strip_tags - удаляет тэги HTML и PHP из строки</h2> Функция strip_tags возвращает строку, очищенную от тегов html и php. Она вам пригодится, когда вы будете писать модуль комментариев на свой сайт, что бы не оставить злоумышленикам возможности взломать ваш сайт через форму. <?php $text="все теги <i>html</i> и <i>php</i> должны быть удалены"; echo strip_tags($text); echo strip_tags($text,"<i>");//не удалять теги em ?> Первым аргуменом функции идет исходны текст, а вторым теги, которые не нжно удалять. <h2>PHP функция strtolower - переводит строку в нижний регистр</h2> <h2>PHP функция strtoupper - переводит строку в верхний регистр</h2> <p>  Если этот сайт оказался вам полезен, вы можете помочь в его развитии, поставив</p> <h3>Задача </h3> <p><b>Задача. </b> Дана строка <b>"minsk" </b>. Сделайте из нее строку <b>"MINSK" </b>.</p> <p><b>Решение: </b> воспользуемся функцией strtoupper и сразу получим результат:</p> <p> <?php echo strtoupper("minsk"); ?></p> <h3>Задача </h3> <p><b>Задача. </b> Дана строка <b>"минск" </b>. Сделайте из нее строку <b>"МИНСК" </b>.</p> <p><b>Решение: </b> функцией <b>strtoupper </b> мы не можем воспользоваться, так как она некорректно работает с русскими буквами. Воспользуемся функцией mb_strtoupper и сразу получим результат:</p> <p> <?php echo mb_strtoupper("минск"); ?></p> <h3>Задача </h3> <p><b>Задача. </b> Дана строка <b>"MINSK" </b>. Сделайте из нее строку <b>"Minsk" </b>.</p> <p><b>Решение: </b> готовой функции для решения задачи в PHP не существует. Поэтому сначала воспользуемся функцией strtolower (в результате получится <b>"minsk" </b>), а затем функцией ucfirst :</p> <p> <?php echo ucfirst(strtolower("minsk")); ?></p> <h3>Задача </h3> <p><b>Задача. </b> В переменной <b>$date </b> лежит дата в формате <b>"31-12-2030" </b> <b>"2030.12.31" </b>.</p> <p><b>Решение: </b> для начала разобьем строку <b>"31-12-2030" </b> в массив с помощью функции explode :</p> <p> <?php //Разбиваем строку в массив по разделителю "-": $arr = explode("-", "31-12-2030"); ?></p> <p>В полученном массиве в <b>$arr </b> будет лежать <b>31 </b> (то есть день), в <b>$arr </b> - месяц, а в <b>$arr </b> - год. Сольем элементы этого массива в новую строку:</p> <p> <?php //Разбиваем строку в массив по разделителю "-": $arr = explode("-", "31-12-2030"); //Получим дату в нужном формате: echo $arr.".".$arr.".".$arr; ?></p> <h2>Задачи для решения</h2> <h3>Работа с регистром символов</h3> <p>Дана строка <b>"php" </b>. Сделайте из нее строку <b>"PHP" </b>.</p> <p>Дана строка <b>"PHP" </b>. Сделайте из нее строку <b>"php" </b>.</p> <p>Дана строка <b>"london" </b>. Сделайте из нее строку <b>"London" </b>.</p> <p>Дана строка <b>"London" </b>. Сделайте из нее строку <b>"london" </b>.</p> <p>Дана строка <b>"london is the capital of great britain" </b>. Сделайте из нее строку <b>"London Is The Capital Of Great Britain" </b>.</p> <p>Дана строка <b>"LONDON" </b>. Сделайте из нее строку <b>"London" </b>.</p> <h3>Работа с strlen</h3> <p>Дана строка <b>"html css php" </b>. Найдите количество символов в этой строке.</p> <p>Дана переменная <b>$password </b>, в которой хранится пароль пользователя. Если количество символов пароля больше 5-ти и меньше 10-ти, то выведите пользователю сообщение о том, что пароль подходит, иначе сообщение о том, что нужно придумать другой пароль.</p> <h3>Работа с substr</h3> <p>Дана строка <b>"html css php" </b>. Вырежьте из нее и выведите на экран слово "html", слово "css" и слово "php".</p> <p>Дана строка. Вырежите и выведите на экран последние <b>3 </b> символа этой строки.</p> <p> <b>"http://" </b></p> <p>Дана строка. Проверьте, что она начинается на <b>"http://" </b> или на <b>"https://" </b>. Если это так, выведите "да", если не так - "нет".</p> <p> <b>".png" </b>. Если это так, выведите "да", если не так - "нет".</p> <p>Дана строка. Проверьте, что она заканчивается на <b>".png" </b> или на <b>".jpg" </b>. Если это так, выведите "да", если не так - "нет".</p> <p>Дана строка. Если в этой строке более 5-ти символов - вырежите из нее первые <b>5 </b> символов, добавьте троеточие в конец и выведите на экран. Если же в этой строке <b>5 </b> и менее символов - просто выведите эту строку на экран.</p> <h3>Работа с str_replace</h3> <p>Дана строка <b>"31.12.2013" </b>. Замените все точки на дефисы.</p> <p>Дана строка <b>$str </b>. Замените в ней все буквы "a" на цифру 1, буквы "b" - на 2, а буквы "c" - на 3.</p> <p>Дана строка с буквами и цифрами, например, "<b>1a2b3c4b5d6e7f8g9h0 </b>". Удалите из нее все цифры. То есть в нашем случае должна получится строка "<b>abcbdefgh </b>".</p> <h3>Работа с strtr</h3> <p>Дана строка <b>$str </b>. Замените в ней все буквы "a" на цифру 1, буквы "b" - на 2, а буквы "c" - на 3. Решите задачу двумя способами работы с функцией <b>strtr </b> (массив замен и две строки замен).</p> <h3>Работа с substr_replace</h3> <p>Дана строка <b>$str </b>. Вырежите из нее подстроку с 3-го символа (отсчет с нуля), 5 штук и вместо нее вставьте "!!!".</p> <h3>Работа с strpos, strrpos</h3> <p>Дана строка "abc abc abc". Определите позицию первой буквы "b".</p> <p>Дана строка "abc abc abc". Определите позицию последней буквы "b".</p> <p>Дана строка "abc abc abc". Определите позицию первой найденной буквы "b", если начать поиск не с начала строки, а с позиции 3.</p> <p>Дана строка "aaa aaa aaa aaa aaa". Определите позицию второго пробела.</p> <p>Проверьте, что в строке есть две точки подряд. Если это так - выведите "есть", если не так - "нет".</p> <p>Проверьте, что строка начинается на <b>"http://" </b>. Если это так - выведите "да", если не так - "нет".</p> <h3>Работа с explode, implode</h3> <p>Дана строка <b>"html css php" </b>. С помощью функции explode запишите каждое слово этой строки в отдельный элемент массива.</p> <p>Дан массив с элементами <b>"html", "css", "php" </b>. С помощью функции implode создайте строку из этих элементов, разделенных запятыми.</p> <p>В переменной <b>$date </b> лежит дата в формате <b>"2013-12-31" </b>. Преобразуйте эту дату в формат <b>"31.12.2013" </b>.</p> <h3>Работа с str_split</h3> <p>Дана строка <b>"1234567890" </b>. Разбейте ее на массив с элементами <b>"12", "34", "56", "78", "90" </b>.</p> <p>Дана строка <b>"1234567890" </b>. Разбейте ее на массив с элементами <b>"1", "2", "3", "4", "5", "6", "7", "8", "9", "0" </b>.</p> <p>Дана строка <b>"1234567890" </b>. Сделайте из нее строку <b>"12-34-56-78-90" </b> не используя цикл.</p> <h3>Работа с trim, ltrim, rtrim</h3> <p>Дана строка. Очистите ее от концевых пробелов.</p> <p>Дана строка <b>"/php/" </b>. Сделайте из нее строку <b>"php" </b>, удалив концевые слеши.</p> <p>Дана строка <b>"слова слова слова." </b>. В конце этой строки может быть точка, а может и не быть. Сделайте так, чтобы в конце этой строки гарантировано стояла точка. То есть: если этой точки нет - ее надо добавить, а если есть - ничего не делать. Задачу решите через <b>rtrim </b> без всяких ифов.</p> <h3>Работа с strrev</h3> <p>Дана строка <b>"12345" </b>. Сделайте из нее строку <b>"54321" </b>.</p> <p>Проверьте, является ли слово <b>палиндромом </b> (одинаково читается во всех направлениях, примеры таких слов: <b>madam, otto, kayak, nun, level </b>).</p> <h3>Работа с str_shuffle</h3> <p>Дана строка. Перемешайте символы этой строки в случайном порядке.</p> <p>Создайте строку из 6-ти случайных маленьких латинских букв так, чтобы буквы не повторялись. Нужно сделать так, чтобы в нашей строке могла быть любая латинская буква, а не ограниченный набор.</p> <h3>Работа с number_format</h3> <p>Дана строка <b>"12345678" </b>. Сделайте из нее строку <b>"12 345 678" </b>.</p> <h3>Работа с str_repeat</h3> <h3>Работа с strip_tags и htmlspecialchars</h3> <p>Дана строка <b>"html, <b>php</b>, js" </b>. Удалите теги из этой строки.</p> <p>Дана строка <b>$str </b>. Удалите все теги из этой строки, кроме тегов <b> и <i>.</p> <p>Дана строка <b>"html, <b>php</b>, js" </b>. Выведите ее на экран <b>"как есть" </b>: то есть браузер не должен преобразовать <b> в жирный.</p> <h3>Работа с chr и ord</h3> <p>Узнайте код символов <b>"a", "b", "c", пробела </b>.</p> <p>Выведите на экран символ с кодом <b>33 </b>.</p> <p>Запишите в переменную <b>$str </b> случайный символ - большую букву латинского алфавита. <i>Подсказка: с помощью таблицы ASCII определите какие целые числа соответствуют большим буквам латинского алфавита. </i></p> <p>Запишите в переменную <b>$str </b> случайную строку <b>$len </b> длиной, состоящую из маленьких букв латинского алфавита. <i>Подсказка: воспользуйтесь циклом for или while. </i></p> <p>Дана буква английского алфавита. Узнайте, она маленькая или большая.</p> <h3>Работа с strchr, strrchr</h3> <p>Дана строка <b>"ab-cd-ef" </b>. С помощью функции <b>strchr </b> выведите на экран строку <b>"-cd-ef" </b>.</p> <p>Дана строка <b>"ab-cd-ef" </b>. С помощью функции <b>strrchr </b> выведите на экран строку <b>"-ef" </b>.</p> <h3>Работа с strstr</h3> <p>Дана строка <b>"ab--cd--ef" </b>. С помощью функции <b>strstr </b> выведите на экран строку <b>"--cd--ef" </b>.</p> <h3>Задачи</h3> <p>Преобразуйте строку <b>"var_test_text" </b> в <b>"varTestText" </b>. Скрипт, конечно же, должен работать с любыми аналогичными строками.</p> <p>Дан массив с числами. Выведите на экран все числа, в которых есть цифра 3.</p> <h3>Задача </h3> <p><b>Задача. </b> Дана строка <b>"minsk" </b>. Сделайте из нее строку <b>"MINSK" </b>.</p> <p><b>Решение: </b> воспользуемся функцией strtoupper и сразу получим результат:</p> <p> <?php echo strtoupper("minsk"); ?></p> <h3>Задача </h3> <p><b>Задача. </b> Дана строка <b>"минск" </b>. Сделайте из нее строку <b>"МИНСК" </b>.</p> <p><b>Решение: </b> функцией <b>strtoupper </b> мы не можем воспользоваться, так как она некорректно работает с русскими буквами. Воспользуемся функцией mb_strtoupper и сразу получим результат:</p> <p> <?php echo mb_strtoupper("минск"); ?></p> <h3>Задача </h3> <p><b>Задача. </b> Дана строка <b>"MINSK" </b>. Сделайте из нее строку <b>"Minsk" </b>.</p> <p><b>Решение: </b> готовой функции для решения задачи в PHP не существует. Поэтому сначала воспользуемся функцией strtolower (в результате получится <b>"minsk" </b>), а затем функцией ucfirst :</p> <p> <?php echo ucfirst(strtolower("minsk")); ?></p> <h3>Задача </h3> <p><b>Задача. </b> В переменной <b>$date </b> лежит дата в формате <b>"31-12-2030" </b> <b>"2030.12.31" </b>.</p> <p><b>Решение: </b> для начала разобьем строку <b>"31-12-2030" </b> в массив с помощью функции explode :</p> <p> <?php //Разбиваем строку в массив по разделителю "-": $arr = explode("-", "31-12-2030"); ?></p> <p>В полученном массиве в <b>$arr </b> будет лежать <b>31 </b> (то есть день), в <b>$arr </b> - месяц, а в <b>$arr </b> - год. Сольем элементы этого массива в новую строку:</p> <p> <?php //Разбиваем строку в массив по разделителю "-": $arr = explode("-", "31-12-2030"); //Получим дату в нужном формате: echo $arr.".".$arr.".".$arr; ?></p> <h2>Задачи для решения</h2> <h3>Работа с регистром символов</h3> <p>Дана строка <b>"php" </b>. Сделайте из нее строку <b>"PHP" </b>.</p> <p>Дана строка <b>"PHP" </b>. Сделайте из нее строку <b>"php" </b>.</p> <p>Дана строка <b>"london" </b>. Сделайте из нее строку <b>"London" </b>.</p> <p>Дана строка <b>"London" </b>. Сделайте из нее строку <b>"london" </b>.</p> <p>Дана строка <b>"london is the capital of great britain" </b>. Сделайте из нее строку <b>"London Is The Capital Of Great Britain" </b>.</p> <p>Дана строка <b>"LONDON" </b>. Сделайте из нее строку <b>"London" </b>.</p> <h3>Работа с strlen</h3> <p>Дана строка <b>"html css php" </b>. Найдите количество символов в этой строке.</p> <p>Дана переменная <b>$password </b>, в которой хранится пароль пользователя. Если количество символов пароля больше 5-ти и меньше 10-ти, то выведите пользователю сообщение о том, что пароль подходит, иначе сообщение о том, что нужно придумать другой пароль.</p> <h3>Работа с substr</h3> <p>Дана строка <b>"html css php" </b>. Вырежьте из нее и выведите на экран слово "html", слово "css" и слово "php".</p> <p>Дана строка. Вырежите и выведите на экран последние <b>3 </b> символа этой строки.</p> <p> <b>"http://" </b></p> <p>Дана строка. Проверьте, что она начинается на <b>"http://" </b> или на <b>"https://" </b>. Если это так, выведите "да", если не так - "нет".</p> <p> <b>".png" </b>. Если это так, выведите "да", если не так - "нет".</p> <p>Дана строка. Проверьте, что она заканчивается на <b>".png" </b> или на <b>".jpg" </b>. Если это так, выведите "да", если не так - "нет".</p> <p>Дана строка. Если в этой строке более 5-ти символов - вырежите из нее первые <b>5 </b> символов, добавьте троеточие в конец и выведите на экран. Если же в этой строке <b>5 </b> и менее символов - просто выведите эту строку на экран.</p> <h3>Работа с str_replace</h3> <p>Дана строка <b>"31.12.2013" </b>. Замените все точки на дефисы.</p> <p>Дана строка <b>$str </b>. Замените в ней все буквы "a" на цифру 1, буквы "b" - на 2, а буквы "c" - на 3.</p> <p>Дана строка с буквами и цифрами, например, "<b>1a2b3c4b5d6e7f8g9h0 </b>". Удалите из нее все цифры. То есть в нашем случае должна получится строка "<b>abcbdefgh </b>".</p> <h3>Работа с strtr</h3> <p>Дана строка <b>$str </b>. Замените в ней все буквы "a" на цифру 1, буквы "b" - на 2, а буквы "c" - на 3. Решите задачу двумя способами работы с функцией <b>strtr </b> (массив замен и две строки замен).</p> <h3>Работа с substr_replace</h3> <p>Дана строка <b>$str </b>. Вырежите из нее подстроку с 3-го символа (отсчет с нуля), 5 штук и вместо нее вставьте "!!!".</p> <h3>Работа с strpos, strrpos</h3> <p>Дана строка "abc abc abc". Определите позицию первой буквы "b".</p> <p>Дана строка "abc abc abc". Определите позицию последней буквы "b".</p> <p>Дана строка "abc abc abc". Определите позицию первой найденной буквы "b", если начать поиск не с начала строки, а с позиции 3.</p> <p>Дана строка "aaa aaa aaa aaa aaa". Определите позицию второго пробела.</p> <p>Проверьте, что в строке есть две точки подряд. Если это так - выведите "есть", если не так - "нет".</p> <p>Проверьте, что строка начинается на <b>"http://" </b>. Если это так - выведите "да", если не так - "нет".</p> <h3>Работа с explode, implode</h3> <p>Дана строка <b>"html css php" </b>. С помощью функции explode запишите каждое слово этой строки в отдельный элемент массива.</p> <p>Дан массив с элементами <b>"html", "css", "php" </b>. С помощью функции implode создайте строку из этих элементов, разделенных запятыми.</p> <p>В переменной <b>$date </b> лежит дата в формате <b>"2013-12-31" </b>. Преобразуйте эту дату в формат <b>"31.12.2013" </b>.</p> <h3>Работа с str_split</h3> <p>Дана строка <b>"1234567890" </b>. Разбейте ее на массив с элементами <b>"12", "34", "56", "78", "90" </b>.</p> <p>Дана строка <b>"1234567890" </b>. Разбейте ее на массив с элементами <b>"1", "2", "3", "4", "5", "6", "7", "8", "9", "0" </b>.</p> <p>Дана строка <b>"1234567890" </b>. Сделайте из нее строку <b>"12-34-56-78-90" </b> не используя цикл.</p> <h3>Работа с trim, ltrim, rtrim</h3> <p>Дана строка. Очистите ее от концевых пробелов.</p> <p>Дана строка <b>"/php/" </b>. Сделайте из нее строку <b>"php" </b>, удалив концевые слеши.</p> <p>Дана строка <b>"слова слова слова." </b>. В конце этой строки может быть точка, а может и не быть. Сделайте так, чтобы в конце этой строки гарантировано стояла точка. То есть: если этой точки нет - ее надо добавить, а если есть - ничего не делать. Задачу решите через <b>rtrim </b> без всяких ифов.</p> <h3>Работа с strrev</h3> <p>Дана строка <b>"12345" </b>. Сделайте из нее строку <b>"54321" </b>.</p> <p>Проверьте, является ли слово <b>палиндромом </b> (одинаково читается во всех направлениях, примеры таких слов: <b>madam, otto, kayak, nun, level </b>).</p> <h3>Работа с str_shuffle</h3> <p>Дана строка. Перемешайте символы этой строки в случайном порядке.</p> <p>Создайте строку из 6-ти случайных маленьких латинских букв так, чтобы буквы не повторялись. Нужно сделать так, чтобы в нашей строке могла быть любая латинская буква, а не ограниченный набор.</p> <h3>Работа с number_format</h3> <p>Дана строка <b>"12345678" </b>. Сделайте из нее строку <b>"12 345 678" </b>.</p> <h3>Работа с str_repeat</h3> <h3>Работа с strip_tags и htmlspecialchars</h3> <p>Дана строка <b>"html, <b>php</b>, js" </b>. Удалите теги из этой строки.</p> <p>Дана строка <b>$str </b>. Удалите все теги из этой строки, кроме тегов <b> и <i>.</p> <p>Дана строка <b>"html, <b>php</b>, js" </b>. Выведите ее на экран <b>"как есть" </b>: то есть браузер не должен преобразовать <b> в жирный.</p> <h3>Работа с chr и ord</h3> <p>Узнайте код символов <b>"a", "b", "c", пробела </b>.</p> <p>Выведите на экран символ с кодом <b>33 </b>.</p> <p>Запишите в переменную <b>$str </b> случайный символ - большую букву латинского алфавита. <i>Подсказка: с помощью таблицы ASCII определите какие целые числа соответствуют большим буквам латинского алфавита. </i></p> <p>Запишите в переменную <b>$str </b> случайную строку <b>$len </b> длиной, состоящую из маленьких букв латинского алфавита. <i>Подсказка: воспользуйтесь циклом for или while. </i></p> <p>Дана буква английского алфавита. Узнайте, она маленькая или большая.</p> <h3>Работа с strchr, strrchr</h3> <p>Дана строка <b>"ab-cd-ef" </b>. С помощью функции <b>strchr </b> выведите на экран строку <b>"-cd-ef" </b>.</p> <p>Дана строка <b>"ab-cd-ef" </b>. С помощью функции <b>strrchr </b> выведите на экран строку <b>"-ef" </b>.</p> <h3>Работа с strstr</h3> <p>Дана строка <b>"ab--cd--ef" </b>. С помощью функции <b>strstr </b> выведите на экран строку <b>"--cd--ef" </b>.</p> <h3>Задачи</h3> <p>Преобразуйте строку <b>"var_test_text" </b> в <b>"varTestText" </b>. Скрипт, конечно же, должен работать с любыми аналогичными строками.</p> <p>Дан массив с числами. Выведите на экран все числа, в которых есть цифра 3.</p> <h2>Введение в ООП</h2> <ul><li> Урок № <br> новая вкладка с new.code.mu<br>Введение </li> <li> Урок № <br> новая вкладка с new.code.mu<br>Свойства </li> <li> Урок № <br> новая вкладка с new.code.mu<br>Методы </li> <li> Урок № <br> новая вкладка с new.code.mu<br>Свойства и $this </li> <li> Урок № <br> новая вкладка с new.code.mu<br>Методы и $this </li> <li> Урок № <br> новая вкладка с new.code.mu<br>public private </li> <li> Урок № <br> новая вкладка с new.code.mu<br>Конструктор </li> <li> Урок № <br> новая вкладка с new.code.mu<br>Геттеры сеттеры </li> <li> Урок № <br> новая вкладка с new.code.mu<br><span>Свойства только для чтения </span></li> <li> Урок № <br> новая вкладка с new.code.mu<br><span>Один класс - один файл </span></li> <li> Урок № <br> новая вкладка с new.code.mu<br><span>Объекты в массиве </span></li> <li></ul> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy>");</script> <div class="clr"></div> <div class="clr"></div> </div> <div class="itemRelated"> <div class="zagolovok-wrapper"> <div class="flower"></div> <h3 class="itemTitle">Публикации по теме</h3> </div> <ul> <li class="even"> <img style="width:105px;height:auto;" class="itemRelImg" src="https://i2.wp.com/lh5.ggpht.com/_vScVCDhZ52k/SoldiAerHRI/AAAAAAAAFwo/FREAb-NCnEk/s800/untweet.jpg" alt="Как удалить невзаимных читателей (фолловеров) в Твиттере Кто такие анфолловеры" / loading=lazy> <a class="itemRelTitle" href="/news/servis-untweeps-ubiraem-neaktivnyh-tvitteryan-kak-udalit-nevzaimnyh/">Как удалить невзаимных читателей (фолловеров) в Твиттере Кто такие анфолловеры</a> <a class="itemRelTitle" href="/news/servis-untweeps-ubiraem-neaktivnyh-tvitteryan-kak-udalit-nevzaimnyh/"></a> <div class="itemRelIntrotext"> <p>Твиттер все больше и больше интегрируется в современную жизнь. Мало того, что сервис весьма интересный, так еще его использование... </div> </li> <!-- /next_post --> <li class="odd"> <img style="width:105px;height:auto;" class="itemRelImg" src="https://i0.wp.com/bnetcmsus-a.akamaihd.net/cms/content_folder_media/sn/SNTOIV1A47FU1463647844262.png" alt="Overwatch не запускается, не работает, не устанавливается" / loading=lazy> <a class="itemRelTitle" href="/tips/chto-delat-esli-v-overwatch-overwatch-ne-zapuskaetsya-ne-rabotaet-ne-ustanavlivaetsya/">Overwatch не запускается, не работает, не устанавливается</a> <a class="itemRelTitle" href="/tips/chto-delat-esli-v-overwatch-overwatch-ne-zapuskaetsya-ne-rabotaet-ne-ustanavlivaetsya/"></a> <div class="itemRelIntrotext"> <p> The launch of Overwatch is just around corner! To make sure you"re ready for deployment on May 24, we"ve put together a series of... </p> </div> </li> <!-- /next_post --> <li class="clr"></li> </ul> <div class="clr"></div> </div> <div class="clr"></div> <div class="clr"></div> </div> </section> </section> </section> </section> <div class="hFooter"></div> <div class="pre-footer-bg"></div> <footer> <section class="footer-wrapper"> <section class="footer-wrapper2"> <nav class="footer_menu"> <ul class="nav menu"> <li><a href="/category/security/">Безопасность</a> </li> <li><a href="/category/interesting/">Интересное</a> </li> <li><a href="/category/news/">Новости</a> </li> <li><a href="/category/news/">Новости </a> </li> <li><a href="/category/reviews/">Обзоры </a> </li> <li><a href="/category/program/">Программы</a> </li> <li><a href="/category/tips/">Советы </a> </li> </ul> </nav> <div class="clearfix"></div> <section class="footer-adres"> <div class="custom"> <p>© 2024 skillmaker.ru - В мире компьютерных технологий </p> </div> </section> <section class="oferta-footer"> <div class="custom"> <p></p> </div> </section> <section class="copyright"> <div class="custom" > </div> </section> <div class="custom-social-icon-wrapper"> <div class="social-icon-container"> <ul> <li><a href="https://vk.com/share.php?url=https://skillmaker.ru/interesting/php-funkcii-raboty-so-strokami-strokovye-funkcii-php-funkcii/" class="s-sprite social-icon-vk">Вконтакте</a></li> <li><a href="https://connect.ok.ru/offer?url=https://skillmaker.ru/interesting/php-funkcii-raboty-so-strokami-strokovye-funkcii-php-funkcii/" class="s-sprite social-icon-ok">Одноклассники</a></li> <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://skillmaker.ru/interesting/php-funkcii-raboty-so-strokami-strokovye-funkcii-php-funkcii/" class="s-sprite social-icon-fb">Фейсбук</a></li> <li><a href="https://www.twitter.com/share?url=https://skillmaker.ru/interesting/php-funkcii-raboty-so-strokami-strokovye-funkcii-php-funkcii/" class="s-sprite social-icon-twitter">Твиттер</a></li> <li><a href="https://youtube.com/" class="s-sprite social-icon-youtube">Ютьюб</a></li> <li><a href="" class="s-sprite social-icon-instagram">Инстаграм</a></li> </ul> </div> </div> <div class="clearfix"></div> </section> </section> </footer> </body> </html>