Ваш первый Сайт С использованием РНР-скриптов
РАБОТА СО СТРОКАМИ
Здесь мы рассмотрим некоторые функции для преобразования строк. При составлении рЬр-программ эти функции будут важны для подсчета, например, числа символов в строке или для проверки вводимых данных пользователями на вашем форуме.
Strlen("str") - возвращает длину строки str, т. е. количество символов. При этом учитываются служебные символы, например пробел или перевод строки (перевод строки состоит из двух символов!).
Trim("str") - удаляет все пробелы в начале и в конце строки.
Ltrim(" str") — удаляет пробелы только в начале строки.
Rtrimf'str") - удаляет пробелы только в конце строки.
Substr("str", start, length) - возвращает часть строки str с позиции (с символа) start и длиной символов length. Например, substr("программирование" 4, 5) возвратит рамми, т. е. возвращаемая часть строки начинается с четвертого символа (нумерация начинается с нуля) и имеет длину в 5 символов. Если третий аргумент функции substr отсутствует, то она возвратит часть строки с позиции, указанной во втором аргументе start до конца строки. Если третий аргумент функции отрицательный, то конец строки будет обрезан
На указанное число символов в этом аргументе, т. е. substr("Программирование", 4, -2) возвратит раммирован.
Stristr("str", "simvol") - возвращает часть строки, начиная с символа simvol И до конца строки. Если символ не найден, то возвращается false.
Strchr("str", "simvol") - возвращает часть строки, начиная с символа simvol И до конца строки. Если символ не найден, то возвращается false. В отличие от предыдущей функции, поиск символа начинается с конца строки. Str_replace("strl", "str2", "str") - заменяет в строке str все вхождения strl На str2.
Str_repeat("str", n) - повторяет строку п раз и возвращает ее. Strrev("str") - возвращает строку, где символы следуют в обратном порядке. Strpos("str", "strl") - возвращает позицию первого вхождения подстроки Strl в строке str.
Strrpos("str", "strl") - возвращает позицию последнего вхождения подстроки strl в строке str.
Strtolower("str") - преобразует символы строки str в нижний регистр и возвращает ее.
Strtoupper("str") - преобразует символы строки str в верхний регистр и возвращает ее.
Ucfirst ("str") - преобразует первый символ строки str в верхний регистр и возвращает ее.
Ucwords ("str") - преобразует первый символ каждого слова строки str В верхний регистр и возвращает ее.
Str_word_count("str", nomer) - возвращает массив слов в строке. Параметр Потег определяет вид массива. Если в качестве этого параметра задать значение 1, то числовые индексы элементов возвращаемого массива будут соответствовать порядковому номеру слова в строке str. Если мы параметру потег присвоим значение 2, то числовые индексы элементов массива будут соответствовать номеру позиции слова в строке. Следует помнить, что нумерация элементов в массиве начинается с нуля. Если параметр потег не указан, то возвращается число слов в строке.
Strtokf'str", "strl") - возвращает первую подстроку строки str, отделенной от остальной части строки символом, указанным в строке strl. Эта функция бывает удобна, когда нужно, например, отделить название файла от его расширения.
Parthinfo("myfile") - функция для работы с путями к файлам и каталогам. Здесь myfile - путь к файлу. Функция возвращает массив (присвоим ему имя $mass), хранящий в своих элементах: путь к директории, по которому расположен файл ($mass["dirname"]), имя файла ($mass["basename"]), расширение файла (Smass["extension "J).
Далее я приведу пример, который наглядно покажет действия приведенных выше функций для работы со строками.
Создайте в PHP-редакторе новый PHP-файл и сохраните его в рабочей папке нашего сервера под названием stroki.php. Наберите следующий код:
Листинг 4.6 (файл Strokiphp) <?Php
$str=" Эта строка, которую Вы видите, будет преобразована $eng="Welcome in the world of programming!";
$dlina=strlen($str); echo "$dlina<br>";
$itog=trim($str); $dlina=strlen($itog); echo "Sitog $dlina<br>";
$itog=ltrim($str); $dlina=strlen($itog); echo "$itog $dlina<br>";
$itog=rtrim($str); $dlina=strlen($itog); echo "$itog $dlina<br>";
$itog=substr($str, 6, 25); echo "$itog<br>";
$itog=stristr($str, "в"); echo "$itog<br>";
$itog=strchr($str, "n"); echo "$itog<br>M;
$itog=str_replace(,,Бyдeтм, "уже", $str); echo "$itog<br>";
$itog=str_repeat($str, 2); echo "$itog<br>";
$itog=strrev($str); echo "$itog<br>";
$itog=strpos($str, "видите"); echo "$itog<br>";
$itog=strrpos($str, "р"); echo "$itog<br>";
$itog=strtolo wer($str); echo "$itog<br>";
$itog=strtoupper($str); echo "$itog<br>";
$itog=ucfirst ($str); echo "$itog<br>";
$itog=ucwords ($str); echo "$itog<br>";
$itog=str_word_count($eng, 1);
Print_r($itog);
Echo "<br>";
$itog=str_word_count($eng);
Print_r($itog);
Echo "<br>";
$itog=strtok($str, ","); echo "$itog<br>";
$path=pathinfo("C:serverApache2htdocsstroki. php"); echo $path["dirname"]."<br>"; echo $path["basename"]."<br>";
Echo $path["extension"];
?>
В начале листинга 4.6, мы присваиваем переменной $str строку на русском языке, которую обязательно заключаем в кавычки. При этом мы ставим перед строкой 2 пробела, а в конце строки еще один пробел. Переменной $eng присваиваем фразу на английском языке.
Запустите программу в браузере. Вы должны увидеть результат работы данной программы примерно как на рис. 4.1. Постарайтесь разобраться самостоятельно.
53
Эта строка, которую Вы видите будет преобразована 50 Эта строка, которую Вы видите, будет преобразована 51 Эта строка, которую Вы видите, будет преобразована 52 строка, которую Вы видите Вы видите, Кудег преобразована преобразована
Эта строка, которую Вы видите, уже преобразована
Эта строка, которую Вы видите, будет преобразована Эта строка, которую Вы видите, будет преобразована анавозарбоерп тедуб. етидив ыВ юуроток. акортс атЭ
44
Эта строка, которую вы видите, будет преобразована ЭТА СТРОКА, КОТОРУЮ ВЫ ВИДИТЕ. БУДЕТ ПРЕОБРАЗОВАНА Эта строка, которую Вы видите, будет преобразована Эта Строка, Которую Вы Видите. Будет Преобразована
Array ^ [0] => Welcome [1] in [2] => the [3] => world [4] of [5] => programming) Эта строка
С s erver'Ap ache 2htdo с г str^ki php
Php____________________________________________________________________
Puc. 4.1
Некоторые строчки кода я все-таки разберу:
$dlina=strlen($str); - переменной $dlina присваиваем количество символов в строке $str, причем включая все пробелы слева и справа; Echo "$dlina<hr>"; - выводим в браузер это количество символов. У нас их 53, что и отражено в первой строке браузера (см. рис. 4.1); $itog=trim($str); - при помощи функции trim удаляем пробелы слева и справа у строки $str и присваиваем теперь эту строку (уже без пробелов слева и справа) переменной $itog
$dlina=strlen($itog); - присваиваем количество символов в строке $itog опять переменной $dlina (старое значение сотрется);
Echo "$itog $dlina<br>"; - выводим в браузер нашу строку на русском языке, но уже без пробелов слева и справа. Рядом со строкой выводим количество символов в этой строке. В итоге вторая строка в браузере будет выглядеть так: Эта строка, которую вы видите, будет преобразована 50. После того как мы удалили пробелы (два в начале, один в конце строки), количество символов стало равно 50. В конце строки ставим тег <br>, означающий переход на новую строку;
$itog=ltrim($str); - при помощи функции Itrim удаляем пробелы только слева у строки $str и присваиваем теперь эту строку (уже без пробелов слева) переменной $itog (старое значение сотрется);
$d!ina=strlen($itog); - присваиваем количество символов в строке $itog переменной Sdlina (старое значение сотрется);
Echo "$itog $dlina<br> "; - выводим в браузер нашу строку на русском языке, но уже без пробелов слева. Рядом со строкой выводим количество символов в этой строке (их 51);
$itog=rtrim($str); - анологично при помощи функции rtrim удаляем пробелы только справа у строки $str и присваиваем теперь эту строку (уже без пробелов справа) снова переменной $itog (старое значение сотрется); $dlina=strlen($itog); - присваиваем количество символов в строке $itog переменной $dlina (старое значение сотрется);
Echo "$itog $dlina<br>"; - выводим в браузер нашу строку на русском языке, но уже без пробелов справа. Рядом со строкой выводим количество символов в этой строке (их 52);
$itog=substr($str, 6, 25); - с помощью функции substr от строки $str оставляем только 25 символов, начиная с шестого символа (два пробела в начале строки тоже учитываются!);
Echo "$itog<br>"; - выводим в браузер урезанную строку (она будет пятой по счету);
$itog=stristr($str, "в"); - с помощью функции stristr создаем новую строку из строки $str, но уже с буквы «в». С этой буквы у нас начинается местоимение «вы». С этого местоимения и начнется теперь строка, которая будет выведена шестой в браузере; Echo "$itog<br>";
$itog=strchr($str, "п"); - с помощью функции strchr создаем новую строку из строки $str, но уже с буквы «п» (с первой буквы «и», но с конца строки!). В итоге седьмая строка будет состоять только из одного слова «Преобразована»; echo "$itog<br>";
$itog=str_replace(" будет", "уже", $str); - с помощью функции str replace, В строке $str Заменим слово «будет» на «уже». Итог на восьмой строке; Echo "$itog<br>";
$itog=str_repeat($str, 2); - с помощью функции str repeat создаем двойную строку $str. Итог на девятой строке; Echo "$itog<br> ";
$itog=strrev($str); - с помощью функции strrev создаем строку Sitog, которая будет записана в обратном порядке, по отношению к исходной строке $str. Итог на десятой строке; Echo "$itog<br>";
$itog=strpos($str, "видите"); - с помощью функции strpos находим позицию в исходной строке $str, с которого начинается слово «видите». Это двадцать пятая позиция (два пробела в начале исходной строки тоже учитываются!). Итог на одиннадцатой строке; Echo "$itog<br> ";
$itog=strrpos($str, "р"); - с помощью функции strrpos находим позицию в исходной строке $str которой соответствует последняя буква «р». Это сорок четвертая позиция (два пробела в начале исходной строки тоже учитываются!). Итог на двенадцатой строке; Echo "$itog<br> ";
$itog=strtolower($str); - с помощью функции strtolower преобразуем все символы исходной строки $str в нижний регистр (все буквы строчные). Итог на тринадцатой строке; Echo "$itog<hr>";
$itog=strtoupper($str); - с помощью функции strtoupper преобразуем все символы исходной строки $str в верхний регистр (все буквы заглавные). Итог на четырнадцатой строке; Echo "$itog<br>";
$itog=ucfirst ($str); - функция ucfirst преобразует первый символ исходной строки $str в верхний регистр. Но поскольку у нас первый символ - пробел, строка не изменится и выведется в браузер в исходном виде пятнадцатой строкой;
Echo "$itog<br>";
$itog=ucwords ($str); - функция ucwords преобразует первые буквы всех слов в исходной строке в заглавные. Результат на шестнадцатой строке;
Echo "$itog<br> ";
$itog=str_word_count($eng, I); - функция str word count возвращает массив отдельных слов в строке $eng. В качестве второго параметра этой функции задано значение 1, т. е. числовые индексы элементов возвращаемого массива будут соответствовать порядковому номеру слова в строке $eng. Увы, данная функция некорректно работает с русским языком, поэтому в качестве исходной строки мы использовали строку $eng с фразой на английском языке; Print_r($itog); - с помощью функции print Г выводим массив слов в браузер. Оператор echo для вывода структуры массива здесь не подойдет. Результат на семнадцатой строке; Echo "<br> ";
$itog=str_word_count($eng); - функция str_word_count в данном случае подсчитает число слов в строке $eng (второй параметр этой функции не указан); Print_r($itog); - выводим число слов в строке $eng в браузер. Результат на восемнадцатой строке. Здесь можно было бы использовать и оператор echo И записать вместо данной строки следующее: Echo "$itog<br>";
$itog=strtok($str, ","); - функция strtok возвращает первую подстроку исходной строки $str (фраза на русском языке), отделенной от остальной части строки запятой. Исходная строка укоротится до первой запятой. Результат на девятнадцатой строке; Echo "$itog<br> ";
$path=pathinfo("C:serverApache2htdocsstroki.php"); - функция path info создает массив (назовем его $path) из строки (пути к нехоему файлу stroki.php), Указанной в круглых скобках;
Echo $path["dirname"]."<br>"; - последние 3 строки выводят в браузер название директории, где находится файл stroki.php, само название файла и его расширение.
Echo $path["basename"]. "<br>"; echo $path["extension "];