Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Функции объединения/разделения строк
str_repeat() Синтаксис: string str_repeat ( string str, int number )Функция повторения строки. Повторяет строку str то количество раз, которое указано в параметре number. К примеру: <? echo str_repeat("Hello!",3 ); // выводит Hello! Hello! Hello!?>str_pad() Синтаксис: string str_pad ( string strinput, int pad_length [, string pad_string [, int pad_type]] )Эта функция дополняет строку другой строкой до определенной длины. Аргумент strinput задает исходную строку. Аргумент pad_length задает длину возвращаемой строки. Если он имеет меньшее значение, чем исходная строка, то добавления не производится. Необязательный аргумент pad_string указывает на то, какую строку использовать в качестве дополнения. По умолчанию используются пробелы. Необязательный аргумент pad_type указывает, с какой стороны следует дополнять строку: справо, слево или с обеих сторон. Аргумент pad_type может принимать следующие значения: · STR_PAD_RIGHT (по умолчанию) · STR_PAD_LEFT · STR_PAD_BOTH
chunk_split() Синтаксис: string chunk_split ( string str [, int chunklen [, string end]] )Эта функция возвращает фрагмент строки. Функция chunk_split() возвращает строку, в которой между каждым блоком строки str длиной chunklen (по умолчанию chunklen = 76) вставляется последовательность из разделителей end (по умолчанию: end = "\r\n").
Strtok() Синтаксис: string strtok ( string arg1, string arg2 )Фунция возвращает строку по частям. Она возвращает часть строки arg1 до разделителя arg2. При последующих вызовах функции возвращается следующая часть до следующего разделителя, и так до конца строки. При первом вызове функция принимает два аргумента: исходную строку arg1 и разделитель arg2. Обратите внимание, что при каждом последующем вызове arg1 указывать не надо, иначе будет возвращаться первая часть строки. Пример: <? $str = "I am very glad to see%you% adhahjasdad";$tok = strtok ( $str, " " ); while( $tok ) { echo ( $tok ); echo ( " " ); $tok = strtok ( " %" ); }; // выведет: "I" "am" "very" "glad" "to" "see" "you":?>Т.е., видите, что абракадабра, которую мы написали в конце строки, не выводится. Это результат того, что когда в строке последовательно встречаются два или более разделителей, функция возвращает пустую строку, что, к примеру, может прекратить цикл обработки, как в этом примере.
Explode() Синтаксис: string explode ( string arg, string str [, int maxlimit] )Функция explode() производит разделение строки в массив. Она возвращает массив строк, каждая из которых соответствует фрагменту исходной строки str, находящемуся между разделителями, указанными аргументом arg. Необязательный параметр maxlimit указывает максимальное количество элементов в массиве. Оставшаяся неразделенная часть будет содержаться в последнем элементе.
Пример: <? $str = "one two three for five"; $str_exp = explode ( " ", $str ); /* теперь $str_exp = array([0] => one, [1] => two, [2] => three, [3] => for, [4] => five) */?>
Implode() Синтаксис: string implode ( string var, array param )Функция implode() является обратной функции explode() и производит объединение массива в строку. Функция возвращает строку, которая последовательно содержит все элементы массива, заданного в параметре param, между которыми вставляется значение, указанное в параметре var. Для примера выведем все то, что мы только что "умассивили" функциейexplode(), используя пробел в качестве разделителя: Пример: <? $str = "one two three four five"; $str_exp = explode ( " ", $str ); /* $str_exp = array([0] => one, [1] => two, [2] => three, [3] => four, [4] => five) */ $str_imp = implode ( " ", $str_exp ); echo( $str_imp );Join() Синтаксис: string join ( string var, array param )Аналог функции implode() - производит объединение массива в строку. Вообще говоря, как Вы увидели, последние три функции имеют прямое отношение как к массивам, так и строкам, и многие авторы рассматривают их в разделе, где рассказывается о массивах. Мы решили их рассмотреть в этой главе, поскольку официально эти функции все же считаются строковыми, а о массивах мы будем говорить в следующей главе. Функции сравнения строк Strcmp() Синтаксис: int strcmp ( string str1, string str2 )Эта функция сравнения строк. Она сравнивает две строки и возвращает: · 0 - если строки полностью совпадают; · 1 - если, строка str1 лексикографически больше str2; · 1 – если, наоборот, строка str1 лексикографически меньше str2 Функция является чувствительной к регистру, т.е. регистр символов влияет на результаты сравнений (поскольку сравнение происходит побайтово). Пример: <? $str1 = "ttt"; $str2 = "tttttttttt"; echo( "Result of strcmp ($str1, $str2) is "); echo( strcmp ( $str1, $str2 )); echo( "<br>" ); echo( "Result of strcmp ($str2, $str1)> is "); echo( strcmp ( $str2, $str1 )); echo( "<br>" ); echo( "Result of strcmp ($str1, $str1) is "); echo( strcmp ($str1,$str1 ));?>
Strncmp() Синтаксис: int strncmp ( string str1, string str2, int len )Эта функция отличается от strcmp() тем, что сравнивает начала строк, а точнее первые len байтов. Если len меньше длины наименьшей из строк, то строки сравниваются целиком. В остальном функция ведет себя аналогично strcmp(), т.е. возвращает: · 0 - если строки полностью совпадают; · 1 - если, строка str1 лексикографически больше str2; · 1 – если, наоборот, строка str1 лексикографически меньше str2 Сравнение также проводится побайтово, поэтому функция чувствительна к регистру.
Strcasecmp() Синтаксис: int strcasecmp ( string str1, string str2 )Функция работает аналогично strcmp(), только при работе не учитывается регистр букв.
Strncasecmp() Синтаксис: int strncasecmp ( string str1, string str2, int len )Функция strncasecmp() cравнивает начала строк без учета регистра.
Strnatcmp() Синтаксис: int strnatcmp ( string str1, string str2 )Производит так называемое "естественное" сравнение строк. Об этой функции поговорим поподробнее. Данная функция является имитатором сравнение строк человеком, т.е. она сравнивает строки так, как их сравнивал бы человек. Т.е., если, к примеру, мы будем сравнивать файлы с названиями pict1.gif, pict20.gif, pict2.gif, pict10.gif, то обычное сравнение приведет к следующему их расположению: pict1.gif, pict10.gif, pict2.gif, pict20.gif. Естественная же сортировка даст результат, который нам более привычен: pict1.gif, pict2.gif, pict10.gif, pict20.gif. В примере использования этой функции мы опять забежим вперед и прибегнем к функциям работы с массивами. Поэтому мы советуем Вам после прочтения главы о массивах еще раз взглянуть на этот пример, и использовать его, когда Вам надо отсортировать все то, что связано со строками, к примеру, названия файлов. <? $array1 = $array2 = array("pict10.gif", "pict2.gif", "pict20.gif", "pict1.gif"); echo( "обычная сортировка:" ); echo ( "<br>" ); usort ( $array1, strcmp ); print_r ( $array1 ); echo ( "<br>" ); echo( "естественная сортировка:" ); echo( "<br>" ); usort ( $array2, strnatcmp ); print_r ( $array2 );?>
Strnatcasecmp() Синтаксис: int strnatcasecmp ( string str1, string str2 )Производит "естественное" сравнение строк без учета регистра. Функция выполняет то же самое, что и strnatcmp(), только без учета регистра.
similar_text() Синтаксис: int similar_text ( string str_first, string str_second [, double percent] )Эта функция производит определение схожести двух строк. Функция similar_text() определяет схожесть двух строк по алгоритму Оливера. Функция возвращает число символов, совпавших в строках str_first и str_second. Третий необязательный параметр передается по ссылке и в нем сохраняется процент совпадения строк. Пример: <? $str1 = "Hello, world!"; $str2 = "Hello!"; $var = similar_text ( $str1,$str2 ); $var1 = similar_text ( $str1, $str2, &$tmp ); // параметр $tmp передаем по ссылке echo( "Результат выполнения функции similar_text() для строк $str и $str1 в количестве символов:" ); echo( "<br>" ); echo( "$var"); echo( "<br>" ); echo( "и в процентах:" ); echo( "<br>" ); echo( $tmp ); // для вывода информации в процентах обращаемся к $tmp?>Функции работы с URL parse_url() Функция обрабатывает URL и возвращает его компоненты. Синтаксис: array parse_url ( string url )Эта функция возвращает ассоциативный массив, включающий множество различных существующих компонентов URL: "scheme", "host", "port", "user", "pass", "path", "query" и "fragment". И если мы напишем вот такой скриптик
Пример: <? $url = "http://www.google.com.ru/search?hl=ru&ie=UTF-8&oe=UTF-8&q=softtime&lr="; $arr = parse_url ( $url ); print_r ( $arr );?>
parse_str() Заносит компоненты URL в переменные. Синтаксис: void parse_str ( string str [, array arr] )Функция parse_str() интерпретирует строку str так, как если бы эта строка содержала в себе переменные и их значения и передавалась бы в URL. Т.е. функция устанавливает для этих переменных значения. Если задан второй необязательный параметр arr, то значения, найденные при помощи функции parse_str(), сохраняться не в глобальных переменных, а в элементах указанного массива. Пример приводить не буду, вроде все понятно.
Rawurlencode() Функция кодирования URL. Синтаксис: string rawurlencode ( string str )Функция rawurlencode возвращает строку, в которой все не алфавитно-цифровые символы, за исключением дефиса "-", знака подчеркивания "_" и точки ".", заменены последовательностями: знак процента (%), за которым следуют две шестнадцатеричные цифры, обозначающие код символа. Кодирование нужно для того, чтобы буквенные символы не обрабатывались как разделители URL-строки и не искажались при передаче в сетях.
Rawurldecode() Производит декодирование URL. Синтаксис: string rawurldecode ( string str )Думаю, что с этой функцией все понятно, добавлю лишь, что она аналогична функции urldecode(), но не воспринимает "+" как пробел. Давайте для примера на эти две функции что-нибудь закодируем и раскодируем. <? $url = "http://www.google.com.ru/search?hl=ru&ie=UTF-8&oe=UTF-8&q=софттайм&lr="; echo( "исходная строка: $url" );echo( "<br>" ); echo( "закодировали:" );echo( "<br>" ); $url_code = rawurlencode($url ); echo( $url_code );echo( "<br>" ); echo( "и раскодировали:" );echo( "<br>" ); $url_decode = rawurldecode ( $url_code ); echo( $url_decode );?>Функции преобразования регистра Strtolower() Функция производит преобразование символов строки в нижний регистр. Синтаксис: string strtolower ( string str )Пример: <? $str = "HELLO WORLD"; $str = strtolower ( $str ); echo $str; // выведет "hello world"?>
Strtoupper() Производит преобразование строки в верхний регистр. Синтаксис: string strtoupper ( string str )Отмечают, что функция не очень хорошо иногда работает с русскими буквами. Пример: <? $str = "Hello World"; $str = strtoupper ( $str ); echo $str; // выведет HELLO WORLD?>
Ucfirst() Производит преобразование первого символа строки в верхний регистр. Синтаксис: string ucfirst ( string str )Функция возвращает строку, с заглавным первым символом. При конвертации символов кириллицы могут быть недоразумения.
Ucwords() Производит преобразование первого символа каждого слова строки в верхний регистр. Синтаксис: string ucwords ( string str )Возвращает строку, у которой первый символ каждого слова в строке заглавный. Под словом понимается участок строки, которому предшествует пробельный символ: пробел, переход на новую строку, прогонка страницы, возврат каретки, горизонтальная и вертикальная табуляция. <? $str = "hello world"; $str = ucwords ( $str ); echo $str; // выведет Hello World?>
Задание 1 к лабораторной работе №4: 1. Для заданного текста определить длину содержащейся в нем максимальной последовательности цифр 0, 1, 2,...,9. 2. Напечатать все слова заданного предложения (слова разделены пробелами), состоящие из тех же букв, что и первое слово предложения. 3. Слова в предложении разделены пробелами. Упорядочить слова в соответствии с ростом их длины. 4. Из заданного текста выбрать и напечатать те символы, которые встречаются в нем ровно 1 раз, в том порядке, как расположены в тексте. 5. Определить число вхождений слова в текст, если слова в тексте разделены пробелами. 6. Заданы в тексте три ключевых слова. Определить, встречаются или нет ключевые слова в тексте. 7. Отредактировать данное предложение, удаляя из него слова, в которых встречаются совпадающие последовательные символы. 8. Найти все слова, которые встречаются в каждом из двух заданных предложений. 9. Отредактировать заданное предложение, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами. 10. Дано предложение. Переписать предложение, переставляя слова в нем в обратном порядке.
Задание 2 к лабораторной работе №4: 1. В предложения поменять первые символы "М" в словах на символ "П" (Пример. Входная строка: Мама мыла раму. Результат: Папа пыла паму). Если таких замен нет, то вывести об этом сообщение. 2. Определить наименьшую длину слова в заданной строке. 3. Заменить все строчные первые символы в словах предложения на заглавные. 4. Подсчитать, сколько слов в предложении оканчиваются буквой "я". 5. Вывести на экран слова предложения, которые начинаются и заканчиваются на одну букву. 6. Какой процент слов в предложении начинается на символ "А". 7. Выяснить сколько раз встречается каждая буква алфавита в строке. 8. В строке заменить все пробелы, стоящие на четных позициях на двойные пробелы. 9. Определить на какую букву заканчивается третье слово в строке. 10. Определить длину последнего слова в строке.
|
||||||||
Последнее изменение этой страницы: 2020-11-28; просмотров: 176; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.239.148 (0.047 с.) |