Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Обработка рядків РНР

РефератДопомога в написанніДізнатися вартістьмоєї роботи

В результаті, оброблене значення рядки $str не міститиме повторюваних прогалин. Якщо потрібне переконатися, що рядок зовсім позбавлений прогалин на початку й наприкінці, застосовується функція trim (str); ($str = trim ($str);). Коли потрібно видалити прогалини лише з початку рядки, потрібно використовувати ltrim. І якщо й зайшла мова початку рядки, давайте переконаємося, перший символ заголовний… Читати ще >

Обработка рядків РНР (реферат, курсова, диплом, контрольна)

Обработка рядків РНР

Андрей Кухарчик Одной із найбільш часто можна зустріти завдань в програмуванні є обробка символьних послідовностей. Якщо простіше — рядків. Як це мовою гіпертекстового препроцесора РНР це і є тема цієї статьи.

Откуда і якомога отримати символьну послідовність? У найпростішому разі - привласнити її потрібної перемінної. Інші варіанти — отримати гроші з форми власності чи з файла. Якщо ви привласнюєте перемінної потрібне значення, воно, зазвичай, вже не потребує обробці, так як програміст робить присвоєння в коді програми, й, звісно, у властивому вигляді. Але якщо рядок зчитується з файла, чи виходить у вигляді форми, вона (символьна рядок) потребує обработке.

Самое перше, що зробити, це видалити повторювані прогалини. І тому в РНР є спеціальна функція: 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-мастеров, з урахуванням даних якого і написана ця стаття. Адреса в Інтернеті - internet.

Список литературы

Для підготовки даної роботи було використані матеріали із російського сайту internet.

Показати весь текст
Заповнити форму поточною роботою