Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Статья: Обработка строк в РНР

Название: Обработка строк в РНР
Раздел: Рефераты по информатике, программированию
Тип: статья Добавлен 02:00:04 05 марта 2007 Похожие работы
Просмотров: 50 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Андрей Кухарчик

Одной из наиболее часто встречающихся задач в программировании является обработка символьных последовательностей. Если проще – строк. Как это делается на языке гипертекстового препроцессора РНР и есть тема этой статьи.

Откуда и как можно получить символьную последовательность? В самом простом случае – присвоить ее нужной переменной. Другие варианты – получить из формы или из файла. Если Вы присваиваете переменной нужное значение, то оно, как правило, не нуждается в обработке, так как программист делает присвоение в коде программы, и конечно, в нужном виде. Но если строка считывается из файла, или получается посредством формы, она (символьная строка) нуждается в обработке.

Самое первое, что стоит сделать, это удалить повторяющиеся пробелы. Для этого в РНР есть специальная функция: chop(str); Пример ее записи:

$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, так как счет символов начинается с нуля). Теперь все потуги Ваших знакомых завалить Вас информацией будут тщетны, так как Ваш умный скрипт не пропустит больше определенного Вами количества символов.

Собственно говоря, у функции 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);Пример – $a = strlen(“qwerty”);. В переменной $a будет число 6, так как длинна строки – 6 символов. Еще одна интересная возможность языка РНР – перевод текста (а значит – и символьных строк) из одной кодировки в другую. Это очень полезно, если нужно согласовать кодировки, например, сайта и почтовой программы. Причем поддерживаются самые распространенные русские кодировки: string convert_cyr_string(str, from, to);. Аргументы from и to являются одним символом, который определяет исходную и целевую кодовую таблицу. Поддерживаемыетипы:

k - koi8-r

w - windows-1251

i - iso8859-5

a - x-cp866

d - x-cp866

m - x-mac-cyrillic

Htmlspecialchars - переводит специальные символы в коды HTML. Htmlspecialchars( string); Определенные символы имеют особое значение в HTML и должны быть заменены кодами HTML, если они таковые имеют. Эта функция возвращает строки с произведенными такими изменениями. Функция полезна для отчистки полученного от пользователя текста от разметки HTML (доски сообщений, гостевые книги). Осуществляются следующие замены:

'&' (амперсанд) становится '&'

'"' (двойные кавычки) становится '"'

'<' (знак меньше) становится '<'

'>' (знак больше) становится '>'

Следует отметить, что эта функция не заменяет ничего, кроме указанного выше. Для полной обработки применяют функцию htmlentities(). Она переводит все возможные символы в коды HTML. Htmlentities(string); Эта функция идентична htmlspecialchars() , кроме того, что все символы, которые имеют соответствующий код HTML, заменяются на этот HTML код. В настоящее время применяется кодовая таблица ISO-8859-1.

Отдельно следует рассмотреть функции поиска в строке. Strchr - Находит первое появление символа. strchr(haystack, needle); Эта функция является псевдонимом для функции strstr(), и полностью ей идентична. Возвращает все haystack с первого появления строки needle и до конца. Если параметр needle не найден, то возвращается false. Если параметр needle не является строкой, то он переводится в целое число и рассматривается как числовое значение символа. Strrpos - Находит позицию последнего появления символа в строке. Strrpos(haystack, needle); Возвращает номер позиции последнего появления символа needle в строке haystack. Следует отметить, что needle в этом случае может быть только единственным символом. Если в качестве параметра needle указывается строка, то только первый символ будет использован. Если needle не найден, то возвращается false. Если параметр needle не является строкой, то он переводится в десятичное число и рассматривается как числовое значение символа. Strrchr -- Находит последнее появление символа в строке.

Strrchr(haystack, needle); Эта функция возвращает позицию haystack, с которой начинается последнее появление needle и продолжается до конца haystack. Возвращает false если needle не найдена. Если параметр needle содержит более чем один символ, то используется первый символ. Если параметр needle не является строкой, то он переводится в целое число и рассматривается как числовое значение символа. Пример:

// получение всего после последней новой строки

$text = "Line 1nLine 2nLine 3";

$last = substr( strrchr( $text, 10 ), 1 );

Strtok - разбивает строку. strtok( arg1, arg2); Используется для разбиения строки. Это значит, что если вы имеете строку типа "Как хорошо программировать", то вы можете разбить эту строку на отдельные слова, используя пробел в качестве разделителя.

$string = " Как хорошо программировать ";

$tok = strtok($string," ");

while($tok) { echo "Word=$tok

"; $tok = strtok(" "); }

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

Вот то, что понадобится Вам для работы со строками в первую очередь. Тут приведен далеко не полный перечень всех строковых функций. Рассмотрены только самые основные. За подробной информацией я отсылаю Вас к переводу руководства по РНР всероссийского клуба Web-мастеров, на основе данных которого и написана эта статья. Адрес в Интернете – http://www.webclub.ru/.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений22:03:14 18 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
14:57:26 24 ноября 2015

Работы, похожие на Статья: Обработка строк в РНР

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(150444)
Комментарии (1831)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru