![]() Online Arcade |
![]() Одной из наиболее часто встречающихся задач в программировании является обработка символьных последовательностей. Если проще - строк. Как это делается на языке гипертекстового препроцессора РНР и есть тема этой статьи. Откуда и как можно получить символьную последовательность? В самом простом случае - присвоить ее нужной переменной. Другие варианты - получить из формы или из файла. Если Вы присваиваете переменной нужное значение, то оно, какправило, не нуждается в обработке, так как программист делает присвоение в коде программы, и конечно, в нужном виде. Но если строка считывается из файла, или получается посредством формы, она (символьная строка) нуждается в обработке. Самое первое, что стоит сделать, это удалить повторяющиеся пробелы. Для этого в РНР есть специальная функция: chop(str); Пример ее записи: $str = chop ($str); В результате, обработанное значение строки $str не будет содержать повторяющихся пробелов. Если нужноу бедиться в том, что строка не содержит пробелов в начале и в конце, применяется функция trim(str); $str = trim ($str); Когдат ребуется удалить пробелы только сначала строки, нужно использовать ltrim. И если уж зашла речь о начале строки, давайте убедимся, что первый символ заглавный. Что бы сделать его таковым, примените ucfirst(str); Есть и функция для перевода во всех словах в строке их первых букв в заглавные - ucwords(str);. Кроме того, очень часто бывает необходимо сравнить строку с некоторым шаблоном. Частный случай - поиск в строке (о нем несколько позже). Но нет никакой гарантии, что полученная строка введена пользователем или получена из файла всоответствии с правилами правописания. Другими словами - строка может содержать в середине слова или предложения чередующиеся заглавные и прописные символы. Решение данной проблемы - в применении функций strtolower(str); и strtoupper(st);. Эти функции, соответственно, переводят символьные строки в нижний и верхний регистр. Комбинирование данных возможностей языка РНР приводит к корректному построению строки независимо от того, как она была введенаили получена в начальном виде. Еще одна необходимая вещь при работе со строками - их обрезка. Часто она применяется при обработке форм для ввода данных. Представьте, что кто-нибудь из Ваших <доброжелателей;gt; введет в Ваш угостевую книгу текст этой статьи. Представляете, что получится? Вот дляэтого и нужно ограничить количество вводимых символов в любом поле формы. Тем более что делается это очень просто. Для начала, нужно прописать ограничениев самой форме: Теперь форма с именем form ограничена вколичестве вводимых символов числом 100. Но это еще далеко не все. Дело в том, чтооб ойти такое ограничение очень просто, и нужно оно скорее для того, что бы показать посетителю предел ограничения. Дальше нужно воспользоваться функцией РНР $form=substr($form,0,99);. Этим вы просто отрезаете часть полученной строки, превышающую 100 символов (стоит цифра 99,так как счет символов начинается с нуля). Теперь все потуги Ваших знакомых завалить Вас информацией будут тщетны, так как Ваш умный скрипт не пропустит больше определенного Вами количества символов. Собственно говоря, у функции substr(string, start,length); совсем другое предназначение. Онавозвращает часть строки string, определяемую параметрами start (начало) и length (длина). Если параметр start положительный, то возвращаемая строка будет начинаться с start-ого символастроки string. Примеры: $form = substr("abcdef", 1); // вернет "bcdef" $form = substr("abcdef", 1, 3); // вернет "bcd" Если параметр start отрицательный, товозвращаемая строка будет начинаться start-ого символа от конца строки string. Примеры: $rest = substr("abcdef", -1); // вернет "f" $rest = substr("abcdef", -2); // вернет "ef" $rest = substr("abcdef", -3, 1); // вернет "d" Если параметр length указан и он положительный, то возвращаемая строка закончится за length символов от начала start. Это приведет к строке с отрицательной длиной (потому что начало будет законцом строки), поэтому возвращаемаястрока удет содержать один символ отначала строки start. Если length указан и онотрицательный, то возвращаемая строка закончится за length от конца строки string. Это опять приведет к строке с отрицательной длиной, поэтому возвращаемая строка будет содержать один символ от начала строки start. Примеры: $rest = substr("abcdef", -1, -1); // вернет "bcde" Вот такая полезная функция. Кроме нее,при обработке данных формы очень важноуметь вырезать из полученной строки лишние или просто недопустимые символы. Можно в этом случае применить специальную функцию, которая заменяет все вхождения строки needle в строке haystack на указанную строку str. Эта функциязаписывается так: str_replace(needle, str, haystack);. Если вам не требуются причудливые правила замены, то вам следует всегда использовать функцию вместоereg_replace(). Примеры: //вырезается символ ввода. $str = str_replace("", "\n", $str); // встроке черный цвет будет заменен накрасный. $str = str_replace("red", "black", $str); Следующая важная и полезная функция - нахождение длинны строки. Синтаксис strlen(string str); <<< | >>> Pages: (1) 2 ![]() ![]() Last reading: 23 Aug 2024 (0:28) Rating: ![]() Total ratings: 0 Rate ![]() ![]() ![]() |