17.04.2024

Функции работы со строками php. Функции работы со строками на php


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

В PHP существует очень много встроенных функций по работе со строками. Большая часть названий этих функций сведена в табл. 4.1.

Таблица 4.1

Имя функции

Назначение

Выводит значение переменной или выражения

Print _ r

Выводит массив

Echo

Выводит значения списка строковых переменных

Получение символа с указанным кодом

Получение подстроки

Str_repeat

Получение строки из повторяющихся значений

Дополнение строки другой строкой до заданной длины

Chunk_split

Фрагментирование строки (вставляется последовательность разделителей)

Strtok

получение строки по частям

Разделение строки в массив (на части по указанному разделителю)

Или join

Объединение элементов массива в строку с добавлением заданного разделителя

Длина строки

Симметричное шифрование

Сравнение 2 строк c учетом регистра

Strcasecmp

Сравнение строк без учета регистра

Синоним strstr

Поиск первого вхождения символа в строку

Определение первой позиции фрагмента в строке

Определение последней позиции фрагмента в строке

Удаление начальных пробелов

Rtrim или chop

Удаление конечных пробелов

Удаление начальных и конечных пробелов

Реверс строки

Strtoupper

Преобразование в верхний регистр

Strtolower

Преобразование в нижний регистр

Замена указанных символов во всей строке

Str_replace

Замена фрагментов строки

Substr_replace

Замена части строки

Addslashes

Добавление обратных экранирующих слэшей перед спец. символами

Stripslashes

Удаление обратных слэшей

Convert_cyr_string

Конвертация строки из одной кодировки кириллицы в другую

Parse_url

Разделение строки url на ее компоненты

str_pad()

Выравнивает строку до определенной длины заданными символами и возвращает отформатированную строку

strlen (string строка)

Определение длины строки

Strcspn().

Возвращает длину первого сегмента строки1, содержащего символы, отсутствующие в строке2

substr_count()

Возвращает количество вхождений подстроки в заданную строку

substr_count (string строка, string подстрока)

substr_replace()

Заменяет часть строки, которая начинается с заданной позиции

substr_replace (string строка, string замена, int начало [, int длина ])

Параметры начало и длина задаются по определенным правилам:

  • если параметр начало положителен, замена начинается с заданной позиции;
  • если параметр начало отрицателен, замена начинается с позиции (длина строки — начало);
  • если параметр длина положителен, заменяется фрагмент заданной длины;
  • если параметр длина отрицателен, замена завершается в позиции (длина строки — длина)

Заменяет все символы новой строки (\n) эквивалентными конструкциями HTML
.

Описание данных функций дано подробно в документации.

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

4.2. Механизмы поиска по шаблону

Данные механизмы решают четыре основные задачи:

  • поиск строк, в точности совпадающих с заданным шаблоном;
  • поиск фрагментов строк, совпадающих с заданным шаблоном;
  • замену строк и подстрок по шаблону;
  • поиск строк, с которыми заданный шаблон не совпадает.

Для решения задач лингвистического анализа текста был предложен механизм регулярных выражений. Регулярные выражения — это не изобретение программистов, а формальный язык математики, который в настоящий момент эффективно применяется в различных языках и средах программирования. В PHP присутствуют 2 группы функций по работе с регулярными выражениями, одна группы ориентирована на язык Perl, в котором эти механизмы впервые нашли эффективную поддержку, а вторая — это группа функций, ориентированная на стандарт открытых систем POSIX. Демократичность языка PHP предполагает, что разработчики могут использовать тот комплект функций, который им кажется более удобным.

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

4.3. Синтаксис регулярных выражений (POSIX)

Структура регулярных выражений POSIX чем-то напоминает структуру типичных математических выражений — различные элементы (операторы) объединяются друг с другом и образуют более сложные выражения. Однако именно смысл объединения элементов делает регулярные выражения таким мощным и выразительным средством. Возможности не ограничиваются поиском литерального текста (например, конкретного слова или числа); вы можете провести поиск строк с разной семантикой, но похожим синтаксисом — например, всех тегов HTML в файле.

Оператор | (вертикальная черта) проверяет совпадение одной из нескольких альтернатив.

Квадратные скобки () имеют особый смысл в контексте регулярных выражений — они означают «любой символ из перечисленных в скобках».

  • [ 0-9] — совпадает с любой десятичной цифрой от 0 до 9;
  • — совпадает с любым символом нижнего регистра от а до z;
  • — совпадает с любым символом верхнего регистра от А до Z;
  • — совпадает с любым символом нижнего или верхнего регистра от а до Z.

4.3.1. Квантификаторы

Существует особый класс служебных символов, обозначающих количество повторений отдельного символа или конструкции, заключенной в квадратные скобки. Эти служебные символы (+, * и {...}) называются квантификаторами. Принцип их действия проще всего пояснить на примерах:

  • р+ означает один или несколько символов р, стоящих подряд;
  • р* означает ноль и более символов р, стоящих подряд;
  • р? означает ноль или один символ р;
  • р{2} означает два символа р, стоящих подряд;
  • р{2,3} означает от двух до трех символов р, стоящих подряд;
  • р{2,} означает два и более символов р, стоящих подряд.

4.3.2. Прочие служебные символы

Служебные символы $ и ^ совпадают не с символами, а с определенными позициями в строке. Например, выражение р$ означает строку, которая завершается символом р, а выражение ^р — строку, начинающуюся с символа р.

Конструкция [^a-zA-Z] совпадает с любым символом, не входящим в указанные интервалы (a-z и A-Z).

Служебный символ. (точка) означает «любой символ». Например, выражение р.р совпадает с символом р, за которым следует произвольный символ, после чего опять следует символ р.

Объединение служебных символов приводит к появлению более сложных выражений.

Рассмотрим несколько примеров:

  • ^.{2}$ — любая строка, содержащая ровно два символа;
  • (.*) — произвольная последовательность символов, заключенная между <Ь> и (вероятно, тегами HTML для вывода жирного текста);
  • p(hp)* — символ р, за которым следует ноль и более экземпляров последовательности hp (например, phphphp).

Иногда требуется найти служебные символы в строках вместо того, чтобы использовать их в описанном специальном контексте. Для этого служебные символы экранируются обратной косой чертой (\). Например, для поиска денежной суммы в долларах можно воспользоваться выражением \$+, т. е. «знак доллара, за которым следует одна или несколько десятичных цифр». Обратите внимание на обратную косую черту перед $. Возможными совпадениями для этого регулярного выражения являются $42, $560.

Стандартные интервальные выражения (символьные классы)

Для удобства программирования в стандарте POSIX были определены некоторые стандартные интервальные выражения, также называемые символьными классами (character classes). Символьный класс определяет один символ из заданного интервала — например, букву алфавита или цифру:

  • [[:alpha:]] — алфавитный символ (aA-zZ);
  • [[:digit:]]-цифра (0-9);
  • [[:alnum:]] — алфавитный символ (aA-zZ) или цифра (0-9);
  • [[:space:]] — пропуски (символы новой строки, табуляции и т. д.).

4.4. Функции РНР для работы с регулярными выражениями (POSIX-совместимые)

В настоящее время РНР поддерживает семь функций поиска с использованием регулярных выражений в стиле POSIX:

  • еrеg();
  • еrеg_rерlасе();
  • eregi();
  • eregi_replace();
  • split();
  • spliti();
  • sql_regcase().

ereg()

Функция еrеg() ищет в заданной строке совпадение для шаблона. Если совпадение найдено, возвращается TRUE, в противном случае возвращается FALSE. Синтаксис функции ereg():

Поиск производится с учетом регистра алфавитных символов. Пример использования ereg() для поиска в строках доменов.соm:

Обратите внимание: из-за присутствия служебного символа $ регулярное выражение совпадает только в том случае, если строка завершается символами.com. Например, оно совпадет в строке "www.apress.com", но не совпадет в строке "www.apress.com/catalog".

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

ereg_replace()

Функция ereg_replace() ищет в заданной строке совпадение для шаблона и заменяет его новым фрагментом. Синтаксис функции ereg_replace():

Функция ereg_replace() работает по тому же принципу, что и ereg(), но ее возможности расширены от простого поиска до поиска с заменой. После выполнения замены функция возвращает модифицированную строку. Если совпадения отсутствуют, строка остается в прежнем состоянии. Функция ereg_replace(), как и еrеg(), учитывает регистр символов. Ниже приведен простой пример, демонстрирующий применение этой функции:

$copy_date = "Copyright 2005":

$copy_date = ereg_replace("(+)". "2006", $copy_date);

print $copy_date: // Выводится строка "Copyright 2006"

У средств поиска с заменой в языке РНР имеется одна интересная возможность — возможность использования обратных ссылок на части основного выражения, заключенные в круглые скобки. Обратные ссылки похожи на элементы необязательного параметра-массива совпадения функции еrеg() за одним исключением: обратные ссылки записываются в виде \0, \1, \2 и т. д., где \0 соответствует всей строке, \1 — успешному совпадению первого подвыражения и т. д. Выражение может содержать до 9 обратных ссылок. В следующем примере все ссылки на URL в тексте заменяются работающими гиперссылками:

Поиск производится без учета регистра алфавитных символов. Функция eregi() особенно удобна при проверке правильности введенных строк (например, паролей). Использование функции eregi() продемонстрировано в следующем примере:

eregi_replace()

Функция eregi_replасе() работает точно так же, как ereg_replace(), за одним исключением: поиск производится без учета регистра символов. Синтаксис функции ereg_replace():

split()

Функция split() разбивает строку на элементы, границы которых определяются по заданному шаблону. Синтаксис функции split():

Необязательный параметр порог определяет максимальное количество элементов, на которые делится строка слева направо. Если шаблон содержит алфавитные символы, функция spl it() работает с учетом регистра символов. Следующий пример демонстрирует использование функции split() для разбиения канонического IP-адреса на триплеты:

spliti ()

Функция spliti() работает точно так же, как ее прототип split(), за одним исключением: она не учитывает регистра символов. Синтаксис функции spliti():

Разумеется, регистр символов важен лишь в том случае, если шаблон содержит алфавитные символы. Для других символов выполнение spliti() полностью аналогично split().

sql_regcase()

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

4.5. Синтаксис регулярных выражений в стиле Perl

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

Диалект регулярных выражений Perl не так уж сильно отличается от диалекта POSIX. В сущности, синтаксис регулярных выражений Perl является отдаленным потомком реализации POSIX, вследствие чего синтаксис POSIX почти совместим с функциями регулярных выражений стиля Perl. Функции обработки регулярных выражений Perl-совместимые работают в 10-20 раз быстрее. Поэтому при обработке больших и сложных текстов рекомендуют использовать именно их.

Рассмотрим общие принципы регулярных выражений Perl на простом примере:

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

Комбинация \d обозначает любую цифру. Конечно, в процессе поиска часто возникает задача идентификации алфавитно-цифровых символов, поэтому в Perl для них был определен метасимвол \w:

/<([\w]+)>/

Этот шаблон совпадает с конструкциями, заключенными в угловые скобки, — например, тегами HTML. Кстати, метасимвол \W имеет прямо противоположный смысл и используется для идентификации символов, не являющихся алфавитно-цифровыми.

Еще один полезный метасимвол, \b, совпадает с границами слов:

/ sql \b/ — это последовательность строк, начинающаяся с sql.

Поскольку метасимвол границы слова расположен справа от текста, этот шаблон совпадет в строках sql 1 и sqlnew или newsql, но не в строке. Противоположный метасимвол, \В, совпадает с чем угодно, кроме границы слова:

/ sql \B/ — символы sql должны находиться только не на границе слов.

Шаблон совпадает в таких строках, как PLsql _1 и PLSQL _ Oracle, но не совпадает в строке PLSQL.

Модификаторы

Модификаторы заметно упрощают работу с регулярными выражениями. Впрочем, модификаторов много, и в табл. 4.2 приведены лишь наиболее интересные из них. Модификаторы перечисляются сразу же после регулярного выражения — например, /string/i.

Таблица 4.2. Примеры модификаторов

4.6. Функции РНР для работы с регулярными выражениями (Perl-совместимые)

В РНР существует пять функций поиска по шаблону с использованием Perl-совместимых регулярных выражений:

  • preg_match();
  • preg_match_all();
  • preg_replace();
  • preg_split();
  • preg_grep().

preg_match()

Функция preg_ m atch() ищет в заданной строке совпадение для шаблона. Если совпадение найдено, возвращается TRUE, в противном случае возвращается FALSE. Синтаксис функции:

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

preg_match_all()

Функция preg_match_all() находит все совпадения шаблона в заданной строке.

Синтаксис функции preg_match_all():

Порядок сохранения в массиве совпадения текста, совпавшего с подвыражениями, определяется необязательным параметром порядок. Этот параметр может принимать два значения:

  • PREG_PATTERN_ORDER — используется по умолчанию, если параметр порядок не указан. Порядок, определяемый значением PREG_PATTERN_ORDER, на первый взгляд выглядит не совсем логично: первый элемент (с индексом 0) содержит массив совпадений для всего регулярного выражения, второй элемент (с индексом 1) содержит массив всех совпадений для первого подвыражения в круглых скобках и т. д.;
  • PREG_SET_ORDER — порядок сортировки массива несколько отличается от принятого по умолчанию. Первый элемент (с индексом 0) содержит массив с текстом, совпавшим со всеми подвыражениями в круглых скобках для первого найденного совпадения. Второй элемент (с индексом 1) содержит аналогичный массив для второго найденного совпадения и т. д.

Следующий пример показывает, как при помощи функции preg_match_al() найти весь текст, заключенный между тегами HTML ...:

Функция preg_repl ace() работает точно так же, как и ereg_replасе(), за одним исключением того, что регулярные выражения могут использоваться в обоих параметрах: в шаблоне и в замене. Синтаксис функции preg_replace():

Необязательный параметр порог определяет максимальное количество замен в строке. Интересный факт: параметры шаблон и замена могут представлять собой массивы. Функция preg_replace() перебирает элементы обоих массивов и выполняет замену по мере их нахождения.

preg_split()

Функция preg_spl it() аналогична split() за одним исключением — параметр шаблон может содержать регулярное выражение. Синтаксис функции preg_split():

Необязательный параметр порог определяет максимальное количество элементов, на которые делится строка. В следующем примере функция preg_split() используется для выборки информации из переменной.

preg _ grep ()

Функция preg_grep() перебирает все элементы заданного массива и возвращает все элементы, в которых совпадает заданное регулярное выражение. Синтаксис функции preg_grep():

Пример использования функции preg_grep() для поиска в массиве слов, начинающихся на п, за которым следует один или несколько символов:

Презентации

Название презентации Аннотация

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

Вот список основных, и самых используемых строковых функций в php:

  1. srelen ("текст") — считает количество символов в строке. Вот небольшой пример:
  2. str_replace("что заменять", "на что заменять", "текст"); - функция нужна для замены подстроки в строке. Например, нам нужно заменить слово студия на «ля-ля-ля», в предложении: «Дизайн студия OX2 на рынке 20 лет» На экране увидим: «Дизайн ля-ля-ля OX2 на рынке 20 лет »
  3. trim ("текст", "символы") — удаляет символы по краям. Например, нам нужно удалить по-краям пробелы и запятые в строке - « , Дизайн студия ox2.ru , ", ", » . Для этого напишем код: Первый параметр строка, второй — символы, которые нужно удалить по краям (если не указывать второй параметр, то обрезаться будут только пробелы).
    На экране увидим «Дизайн студия ox2.ru» , без пробелов и запятых. Есть аналогичные функции ltrim — удаляет символы слева, и rtrim — справа.
    Функция очень часто используется при создании интернет-магазинов, например при авторизации, чтобы пользователь при копировании пароля из блокнота случайно не вставил лишние пробелы или другие знаки.
  4. substr("Строка", "Начальная позиция", "Конечная позиция"); - возвращает часть строки. Например, нам нужно в строке "Дизайн студия ox2.ru занимается созданием сайтов и интернет-магазинов" обрезать все лишнее, и оставить только , для этого напишем код: Вырезаем подстроку, начинаю с 14-ого символа, и заканчивая 34. На экране увидим «ox2.ru занимается созданием сайтов» . Если последний параметр (34) не указывать, то текст будет вырезан с 14-ой позиции до конца строки.
  5. strpos("Строка", "подстрока", позиция начального символа); — возвращает позицию найденной подстроки в строке. Например, нам нужно узнать позицию слова "ox2" в строке "Компания ox2.ru умеет создавать интернет магазины. В дизайн студии ox2.ru вы можете заказать сайт" , пишем код: На экране увидим 9, т.к. с 9-ого символа начинается первое вхождение слова ox2 . Если указать 3-ий параметр то поиск вхождения будет с этой позиции.
    Так же есть функция strrpos , она ищет справа налево. Если в этом примере указать вместо strpos - strrpos, то на экране увидим 67, т.к. справа первое вхождение начинается с 67-ого символа.

Теперь напишем пример, для закрепления материала. В нашем скрипте будем обрабатывать данные из текстового поля «Адрес сайта:». Адрес сайта можно ввести так: «http://ox2.ru/», можно так «www.ox2.ru», можно так: «ox2.ru/», и т.д. Вариантом достаточно много. А для нашего интернет-магазина обязательное условие, это хранение всех данных о пользователе в едином формате («ox2.ru», без http, www, пробелов и слэшей по краям!).

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

Но цель урока показать использование этих функций в связке.

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

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

OX2 2014-10-05 2014-10-05

Задача

Задача. Дана строка "minsk" . Сделайте из нее строку "MINSK" .

Решение: воспользуемся функцией strtoupper и сразу получим результат:

Задача

Задача. Дана строка "минск" . Сделайте из нее строку "МИНСК" .

Решение: функцией strtoupper мы не можем воспользоваться, так как она некорректно работает с русскими буквами. Воспользуемся функцией mb_strtoupper и сразу получим результат:

Задача

Задача. Дана строка "MINSK" . Сделайте из нее строку "Minsk" .

Решение: готовой функции для решения задачи в PHP не существует. Поэтому сначала воспользуемся функцией strtolower (в результате получится "minsk" ), а затем функцией ucfirst :

Задача

Задача. В переменной $date лежит дата в формате "31-12-2030" "2030.12.31" .

Решение: для начала разобьем строку "31-12-2030" в массив с помощью функции explode :

В полученном массиве в $arr будет лежать 31 (то есть день), в $arr - месяц, а в $arr - год. Сольем элементы этого массива в новую строку:

Задачи для решения

Работа с регистром символов

Дана строка "php" . Сделайте из нее строку "PHP" .

Дана строка "PHP" . Сделайте из нее строку "php" .

Дана строка "london" . Сделайте из нее строку "London" .

Дана строка "London" . Сделайте из нее строку "london" .

Дана строка "london is the capital of great britain" . Сделайте из нее строку "London Is The Capital Of Great Britain" .

Дана строка "LONDON" . Сделайте из нее строку "London" .

Работа с strlen

Дана строка "html css php" . Найдите количество символов в этой строке.

Дана переменная $password , в которой хранится пароль пользователя. Если количество символов пароля больше 5-ти и меньше 10-ти, то выведите пользователю сообщение о том, что пароль подходит, иначе сообщение о том, что нужно придумать другой пароль.

Работа с substr

Дана строка "html css php" . Вырежьте из нее и выведите на экран слово "html", слово "css" и слово "php".

Дана строка. Вырежите и выведите на экран последние 3 символа этой строки.

"http://"

Дана строка. Проверьте, что она начинается на "http://" или на "https://" . Если это так, выведите "да", если не так - "нет".

".png" . Если это так, выведите "да", если не так - "нет".

Дана строка. Проверьте, что она заканчивается на ".png" или на ".jpg" . Если это так, выведите "да", если не так - "нет".

Дана строка. Если в этой строке более 5-ти символов - вырежите из нее первые 5 символов, добавьте троеточие в конец и выведите на экран. Если же в этой строке 5 и менее символов - просто выведите эту строку на экран.

Работа с str_replace

Дана строка "31.12.2013" . Замените все точки на дефисы.

Дана строка $str . Замените в ней все буквы "a" на цифру 1, буквы "b" - на 2, а буквы "c" - на 3.

Дана строка с буквами и цифрами, например, "1a2b3c4b5d6e7f8g9h0 ". Удалите из нее все цифры. То есть в нашем случае должна получится строка "abcbdefgh ".

Работа с strtr

Дана строка $str . Замените в ней все буквы "a" на цифру 1, буквы "b" - на 2, а буквы "c" - на 3. Решите задачу двумя способами работы с функцией strtr (массив замен и две строки замен).

Работа с substr_replace

Дана строка $str . Вырежите из нее подстроку с 3-го символа (отсчет с нуля), 5 штук и вместо нее вставьте "!!!".

Работа с strpos, strrpos

Дана строка "abc abc abc". Определите позицию первой буквы "b".

Дана строка "abc abc abc". Определите позицию последней буквы "b".

Дана строка "abc abc abc". Определите позицию первой найденной буквы "b", если начать поиск не с начала строки, а с позиции 3.

Дана строка "aaa aaa aaa aaa aaa". Определите позицию второго пробела.

Проверьте, что в строке есть две точки подряд. Если это так - выведите "есть", если не так - "нет".

Проверьте, что строка начинается на "http://" . Если это так - выведите "да", если не так - "нет".

Работа с explode, implode

Дана строка "html css php" . С помощью функции explode запишите каждое слово этой строки в отдельный элемент массива.

Дан массив с элементами "html", "css", "php" . С помощью функции implode создайте строку из этих элементов, разделенных запятыми.

В переменной $date лежит дата в формате "2013-12-31" . Преобразуйте эту дату в формат "31.12.2013" .

Работа с str_split

Дана строка "1234567890" . Разбейте ее на массив с элементами "12", "34", "56", "78", "90" .

Дана строка "1234567890" . Разбейте ее на массив с элементами "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" .

Дана строка "1234567890" . Сделайте из нее строку "12-34-56-78-90" не используя цикл.

Работа с trim, ltrim, rtrim

Дана строка. Очистите ее от концевых пробелов.

Дана строка "/php/" . Сделайте из нее строку "php" , удалив концевые слеши.

Дана строка "слова слова слова." . В конце этой строки может быть точка, а может и не быть. Сделайте так, чтобы в конце этой строки гарантировано стояла точка. То есть: если этой точки нет - ее надо добавить, а если есть - ничего не делать. Задачу решите через rtrim без всяких ифов.

Работа с strrev

Дана строка "12345" . Сделайте из нее строку "54321" .

Проверьте, является ли слово палиндромом (одинаково читается во всех направлениях, примеры таких слов: madam, otto, kayak, nun, level ).

Работа с str_shuffle

Дана строка. Перемешайте символы этой строки в случайном порядке.

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

Работа с number_format

Дана строка "12345678" . Сделайте из нее строку "12 345 678" .

Работа с str_repeat

Работа с strip_tags и htmlspecialchars

Дана строка "html, php, js" . Удалите теги из этой строки.

Дана строка $str . Удалите все теги из этой строки, кроме тегов и .

Дана строка "html, php, js" . Выведите ее на экран "как есть" : то есть браузер не должен преобразовать в жирный.

Работа с chr и ord

Узнайте код символов "a", "b", "c", пробела .

Выведите на экран символ с кодом 33 .

Запишите в переменную $str случайный символ - большую букву латинского алфавита. Подсказка: с помощью таблицы ASCII определите какие целые числа соответствуют большим буквам латинского алфавита.

Запишите в переменную $str случайную строку $len длиной, состоящую из маленьких букв латинского алфавита. Подсказка: воспользуйтесь циклом for или while.

Дана буква английского алфавита. Узнайте, она маленькая или большая.

Работа с strchr, strrchr

Дана строка "ab-cd-ef" . С помощью функции strchr выведите на экран строку "-cd-ef" .

Дана строка "ab-cd-ef" . С помощью функции strrchr выведите на экран строку "-ef" .

Работа с strstr

Дана строка "ab--cd--ef" . С помощью функции strstr выведите на экран строку "--cd--ef" .

Задачи

Преобразуйте строку "var_test_text" в "varTestText" . Скрипт, конечно же, должен работать с любыми аналогичными строками.

Дан массив с числами. Выведите на экран все числа, в которых есть цифра 3.

Введение в ООП

  • Урок №
    новая вкладка с new.code.mu
    Введение
  • Урок №
    новая вкладка с new.code.mu
    Свойства
  • Урок №
    новая вкладка с new.code.mu
    Методы
  • Урок №
    новая вкладка с new.code.mu
    Свойства и $this
  • Урок №
    новая вкладка с new.code.mu
    Методы и $this
  • Урок №
    новая вкладка с new.code.mu
    public private
  • Урок №
    новая вкладка с new.code.mu
    Конструктор
  • Урок №
    новая вкладка с new.code.mu
    Геттеры сеттеры
  • Урок №
    новая вкладка с new.code.mu
    Свойства только для чтения
  • Урок №
    новая вкладка с new.code.mu
    Один класс - один файл
  • Урок №
    новая вкладка с new.code.mu
    Объекты в массиве

Задача

Задача. Дана строка "minsk" . Сделайте из нее строку "MINSK" .

Решение: воспользуемся функцией strtoupper и сразу получим результат:

Задача

Задача. Дана строка "минск" . Сделайте из нее строку "МИНСК" .

Решение: функцией strtoupper мы не можем воспользоваться, так как она некорректно работает с русскими буквами. Воспользуемся функцией mb_strtoupper и сразу получим результат:

Задача

Задача. Дана строка "MINSK" . Сделайте из нее строку "Minsk" .

Решение: готовой функции для решения задачи в PHP не существует. Поэтому сначала воспользуемся функцией strtolower (в результате получится "minsk" ), а затем функцией ucfirst :

Задача

Задача. В переменной $date лежит дата в формате "31-12-2030" "2030.12.31" .

Решение: для начала разобьем строку "31-12-2030" в массив с помощью функции explode :

В полученном массиве в $arr будет лежать 31 (то есть день), в $arr - месяц, а в $arr - год. Сольем элементы этого массива в новую строку:

Задачи для решения

Работа с регистром символов

Дана строка "php" . Сделайте из нее строку "PHP" .

Дана строка "PHP" . Сделайте из нее строку "php" .

Дана строка "london" . Сделайте из нее строку "London" .

Дана строка "London" . Сделайте из нее строку "london" .

Дана строка "london is the capital of great britain" . Сделайте из нее строку "London Is The Capital Of Great Britain" .

Дана строка "LONDON" . Сделайте из нее строку "London" .

Работа с strlen

Дана строка "html css php" . Найдите количество символов в этой строке.

Дана переменная $password , в которой хранится пароль пользователя. Если количество символов пароля больше 5-ти и меньше 10-ти, то выведите пользователю сообщение о том, что пароль подходит, иначе сообщение о том, что нужно придумать другой пароль.

Работа с substr

Дана строка "html css php" . Вырежьте из нее и выведите на экран слово "html", слово "css" и слово "php".

Дана строка. Вырежите и выведите на экран последние 3 символа этой строки.

"http://"

Дана строка. Проверьте, что она начинается на "http://" или на "https://" . Если это так, выведите "да", если не так - "нет".

".png" . Если это так, выведите "да", если не так - "нет".

Дана строка. Проверьте, что она заканчивается на ".png" или на ".jpg" . Если это так, выведите "да", если не так - "нет".

Дана строка. Если в этой строке более 5-ти символов - вырежите из нее первые 5 символов, добавьте троеточие в конец и выведите на экран. Если же в этой строке 5 и менее символов - просто выведите эту строку на экран.

Работа с str_replace

Дана строка "31.12.2013" . Замените все точки на дефисы.

Дана строка $str . Замените в ней все буквы "a" на цифру 1, буквы "b" - на 2, а буквы "c" - на 3.

Дана строка с буквами и цифрами, например, "1a2b3c4b5d6e7f8g9h0 ". Удалите из нее все цифры. То есть в нашем случае должна получится строка "abcbdefgh ".

Работа с strtr

Дана строка $str . Замените в ней все буквы "a" на цифру 1, буквы "b" - на 2, а буквы "c" - на 3. Решите задачу двумя способами работы с функцией strtr (массив замен и две строки замен).

Работа с substr_replace

Дана строка $str . Вырежите из нее подстроку с 3-го символа (отсчет с нуля), 5 штук и вместо нее вставьте "!!!".

Работа с strpos, strrpos

Дана строка "abc abc abc". Определите позицию первой буквы "b".

Дана строка "abc abc abc". Определите позицию последней буквы "b".

Дана строка "abc abc abc". Определите позицию первой найденной буквы "b", если начать поиск не с начала строки, а с позиции 3.

Дана строка "aaa aaa aaa aaa aaa". Определите позицию второго пробела.

Проверьте, что в строке есть две точки подряд. Если это так - выведите "есть", если не так - "нет".

Проверьте, что строка начинается на "http://" . Если это так - выведите "да", если не так - "нет".

Работа с explode, implode

Дана строка "html css php" . С помощью функции explode запишите каждое слово этой строки в отдельный элемент массива.

Дан массив с элементами "html", "css", "php" . С помощью функции implode создайте строку из этих элементов, разделенных запятыми.

В переменной $date лежит дата в формате "2013-12-31" . Преобразуйте эту дату в формат "31.12.2013" .

Работа с str_split

Дана строка "1234567890" . Разбейте ее на массив с элементами "12", "34", "56", "78", "90" .

Дана строка "1234567890" . Разбейте ее на массив с элементами "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" .

Дана строка "1234567890" . Сделайте из нее строку "12-34-56-78-90" не используя цикл.

Работа с trim, ltrim, rtrim

Дана строка. Очистите ее от концевых пробелов.

Дана строка "/php/" . Сделайте из нее строку "php" , удалив концевые слеши.

Дана строка "слова слова слова." . В конце этой строки может быть точка, а может и не быть. Сделайте так, чтобы в конце этой строки гарантировано стояла точка. То есть: если этой точки нет - ее надо добавить, а если есть - ничего не делать. Задачу решите через rtrim без всяких ифов.

Работа с strrev

Дана строка "12345" . Сделайте из нее строку "54321" .

Проверьте, является ли слово палиндромом (одинаково читается во всех направлениях, примеры таких слов: madam, otto, kayak, nun, level ).

Работа с str_shuffle

Дана строка. Перемешайте символы этой строки в случайном порядке.

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

Работа с number_format

Дана строка "12345678" . Сделайте из нее строку "12 345 678" .

Работа с str_repeat

Работа с strip_tags и htmlspecialchars

Дана строка "html, php, js" . Удалите теги из этой строки.

Дана строка $str . Удалите все теги из этой строки, кроме тегов и .

Дана строка "html, php, js" . Выведите ее на экран "как есть" : то есть браузер не должен преобразовать в жирный.

Работа с chr и ord

Узнайте код символов "a", "b", "c", пробела .

Выведите на экран символ с кодом 33 .

Запишите в переменную $str случайный символ - большую букву латинского алфавита. Подсказка: с помощью таблицы ASCII определите какие целые числа соответствуют большим буквам латинского алфавита.

Запишите в переменную $str случайную строку $len длиной, состоящую из маленьких букв латинского алфавита. Подсказка: воспользуйтесь циклом for или while.

Дана буква английского алфавита. Узнайте, она маленькая или большая.

Работа с strchr, strrchr

Дана строка "ab-cd-ef" . С помощью функции strchr выведите на экран строку "-cd-ef" .

Дана строка "ab-cd-ef" . С помощью функции strrchr выведите на экран строку "-ef" .

Работа с strstr

Дана строка "ab--cd--ef" . С помощью функции strstr выведите на экран строку "--cd--ef" .

Задачи

Преобразуйте строку "var_test_text" в "varTestText" . Скрипт, конечно же, должен работать с любыми аналогичными строками.

Дан массив с числами. Выведите на экран все числа, в которых есть цифра 3.

Строки — очень важный тип данных, с которым приходится постоянно работать при решении задач веб разработки. В данной статье описаны 10 очень полезных приемов, которые сделают жизнь PHP разработчика легче.

Автоматическое удаление html тегов из строки

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

$text = strip_tags($input, "");

Получаем текст между $start и $end

Такая функция должна быть в арсенале разработчика: она получает оригинальную строку, начало и конец, а возвращает текст, который содержится между $start и $end.

Function GetBetween($content,$start,$end){ $r = explode($start, $content); if (isset($r)){ $r = explode($end, $r); return $r; } return ""; }

Трансформация URL в гиперссылку

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

$url = "Jean-Baptiste Jung (http://www.webdevcat.com)"; $url = preg_replace("#http://(+)#", " ", $url);

Разделяем текст в 140 символный массив для Twitter

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

Function split_to_chunks($to,$text){ $total_length = (140 - strlen($to)); $text_arr = explode(" ",$text); $i=0; $message=""; foreach ($text_arr as $word){ if (strlen($message[$i] . $word . " ") <= $total_length){ if ($text_arr == $word){ $message[$i] .= $word; } else { $message[$i] .= $word . " "; } } else { $i++; if ($text_arr == $word){ $message[$i] = $word; } else { $message[$i] = $word . " "; } } } return $message; }

Удаляем URL из строки

Многие люди оставляют в комментариях блога URL, чтобы получить трафик или организовать обратную связь. Такие ссылки загрязняют блог и могут стать причиной расстройств владельца в случае их большого количества. Так что следующая функция будет очень полезна!

$string = preg_replace("/\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*/i", "", $string);

Конвертируем строку в слаг

Нужно генерировать слаг (для постоянной ссылки), который будет совместим с задачами SEO? Следующая функция принимает строку в качестве параметра и возвращает совместимый с задачами SEO слаг. Просто и эффективно!

Function slug($str){ $str = strtolower(trim($str)); $str = preg_replace("/[^a-z0-9-]/", "-", $str); $str = preg_replace("/-+/", "-", $str); return $str; }

Парсинг файла CSV

CSV (Coma separated values — значения, разделённые запятой) файлы — простой способ для хранения и передачи данных, а парсинг таких файлов в PHP выполняется чрезвычайно просто. Не верите? Следующий код демонстрирует обработку CSV файла:

$fh = fopen("contacts.csv", "r"); while($line = fgetcsv($fh, 1000, ",")) { echo "Contact: {$line}"; }

Поиск строки в другой строке

Если строка содержится в другой строке и вам нужно найти ее, то задача решается просто:

Function contains($str, $content, $ignorecase=true){ if ($ignorecase){ $str = strtolower($str); $content = strtolower($content); } return strpos($content,$str) ? true: false; }

Проверяем, что строка начинается с определённого шаблона

Некоторые языки программирования, например, Java, имеют метод/функцию startWith, которая позволяет проверять, начинается ли строка с определённого шаблона. К сожалению, PHP не имеет такой простой встроенной функции.
Тем не менее, мы можем сделать её для себя, причём, очень просто::

Function String_Begins_With($needle, $haystack) { return (substr($haystack, 0, strlen($needle))==$needle); }

Выделяем email из строки

Когда-нибудь удивлялись, как спамеры получают ваши email адреса? Все просто. Они берут веб страницу (например, с форума) и проводят парсинг html кода для выделения emails адресов. Ниже приведённый код получает строку в качестве параметра и печатает все email, которые содержатся в ней. Пожалуйста, не используйте данный код для спама!

Function extract_emails($str){ // Регулярное выражение, которое извлекает все email из строки: $regexp = "/()+\@(()+\.)+({2,4})+/i"; preg_match_all($regexp, $str, $m); return isset($m) ? $m : array(); } $test_string = "Тестовая строка... [email protected] Проверяем другие форматы: [email protected]; foobar Ещё проверка: [email protected] test6example.org [email protected] test8@ example.org test9@!foo!.org foobar "; print_r(extract_emails($test_string));


© 2024
slushat-audioskazki.ru - Компьютерные подсказки - Это полезно знать