Обработка строк в РНРОдной из наиболее часто встречающихся задач в программировании
является обработка символьных последовательностей. Если проще - строк.
Как это делается на языке гипертекстового препроцессора РНР, и есть тема этой статьи. $str = chop ($str);
В результате, обработанное значение строки $str не будет содержать
повторяющихся пробелов. Если нужно убедиться в том, что строка не
содержит пробелов в начале и в конце, применяется функция trim(str);
($str = trim ($str);). Когда требуется удалить пробелы только с начала
строки, нужно использовать ltrim. И если уж зашла речь о начале строки,
давайте убедимся, что первый символ заглавный. Чтобы сделать его
таковым, примените ucfirst(str);. Есть и функция для перевода во всех
словах в строке их первых букв в заглавные - ucwords(str);. Кроме того,
очень часто бывает необходимо сравнить строку с некоторым шаблоном.
Частный случай - поиск в строке (о нем несколько позже). Но нет никакой
гарантии, что полученная строка введена пользователем или получена из
файла в соответствии с правилами правописания. Другими словами - строка
может содержать в середине слова или предложения чередующиеся заглавные и прописные символы. Решение данной проблемы - в применении функций
strtolower(str); и strtoupper(st);. Эти функции, соответственно,
переводят символьные строки в нижний и верхний регистр. Комбинирование
данных возможностей языка РНР приводит к корректному построению строки
не зависимо от того, как она была введена или получена в начальном виде. <input maxlength="100" name="form">
Теперь форма с именем form ограничена в количестве вводимых символов
числом 100. Но это еще далеко не все. Дело в том, что обойти такое
ограничение очень просто, и нужно оно скорее для того, чтобы показать
посетителю предел ограничения. Дальше нужно воспользоваться функцией РНР $form =substr($form, 0, 99);. Этим вы просто отрезаете часть полученной
строки, превышающую 100 символов (стоит цифра 99, так как счет символов
начинается с нуля). Теперь все потуги Ваших знакомых завалить Вас
информацией будут тщетны, так как Ваш умный скрипт не пропустит больше
определенного Вами количества символов. $form = substr("abcdef", 1); // вернет "bcdef"
Если параметр start отрицательный, то возвращаемая строка будет начинаться start-ого символа от конца строки string. Примеры: $rest = substr("abcdef", -1); // вернет "f"
Если параметр 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); // вырезается символ ввода.
Следующая важная и полезная функция - нахождение длины строки. Синтаксис - strlen(string str); Пример: $a = strlen("qwerty");
В переменной $a будет число 6, так как длина строки - 6 символов. Еще одна интересная возможность языка РНР - перевод текста (а значит - и символьных строк) из одной кодировки в другую. Это очень полезно, если нужно согласовать кодировки, например, сайта и почтовой программы. Причем поддерживаются самые распространенные русские кодировки: string convert_cyr_string(str, from, to);. Аргументы from и to являются одним символом, который определяет исходную и целевую кодовую таблицу. Поддерживаемые типы: k - koi8-r Htmlspecialchars - переводит специальные символы в коды HTML. Htmlspecialchars(string); Определенные символы имеют особое значение в HTML и должны быть заменены кодами HTML, если таковые имеют. Эта функция возвращает строки с произведенными такими изменениями. Функция полезна для отчистки полученного от пользователя текста от разметки HTML (доски сообщений, гостевые книги). Осуществляются следующие замены: '&' (амперсант) становится '&' Следует отметить, что эта функция не заменяет ничего, кроме
указанного выше. Для полной обработки применяют функцию htmlentities().
Она переводит все возможные символы в коды HTML. Htmlentities(string);
Эта функция идентична htmlspecialchars(), кроме того, что все символы,
которые имеют соответствующий код HTML, заменяются на этот HTML код. В
настоящее время применяется кодовая таблица ISO-8859-1. // получение всего после последней новой строки
Следует отметить, что только первый вызов функции strtok использует
строковый аргумент. Для каждого последующего вызова функции strtok
необходим только разделитель, так как это позволяет контролировать
положение в текущей строке. Для начала заново или для разбития новой
строки вам необходимо просто вызвать strtok с параметром строки опять
для ее инициализации. Вы можете вставлять несколько разделителей в
параметр разделителя. Строка будет разделяться при обнаружении любого из указанных символов. Также будьте внимательны к разделителям равным "0". Это может вызвать ошибку в определенных выражениях. Источник: www.virtual.bresttelecom.by |
КОНТАКТЫ
г. Екатеринбург info@vismech.ru |
текущее: НОВОСТИ 05.12.2013 - Уход за флэш-накопителем 05.12.2013 - Компьютер самопроизвольно выключается 05.12.2013 - Почему не запускается компьютер? 27.11.2013 - Canon Legria HF R406 - Описание видеокамеры 27.11.2013 - TravelMate P645 новый лэптоп бизнес-класса от Acer |