От автора: если понаблюдать за работой профессионального разработчика, то кажется, что у него строки кода сами ложатся на рабочий «холст», постепенно превращаясь в программное «произведение». А сам программист при этом также умело обращается с языком, как опытный летчик управляет современным самолетом. Чтоб так профессионально «пилотировать» программной наукой, нужно в совершенстве знать все функции языка. Например, PHP функции работы с массивами.
«Улет» с массивами
Массивы широко используются в программировании, в том числе и серверном. С их помощью можно применять отдельные операции сразу к множеству элементов. В PHP все виды массивов смешались воедино. Кратко поясним эту «тенденцию».
Данный язык не устанавливает жестких требований к типу значения ключей (индексу). То есть они могут быть как строковыми, так и числовыми. Например:
1 2 3 4 5 6 7 8 |
<?php $array = array( 1 => "PHP", "HTML" => 2, 3=> "JavaScript", 4=>345, "hello"=>250); ?> |
Как видите, не только ключи могут быть разного типа, но и сами значения элементов. Также обратите внимание, что для объявления массива используется оператор array. Онпозволяет задавать значение ключей. Также существует другой способ инициализации массивов, при котором PHP «самостоятельно» добавляет индексы элементов:
1 2 3 4 5 6 |
<?php $fruits[]="apple"; $fruits[]="banana"; $fruits[]="pear"; var_dump ($fruits); ?> |
В данном примере мы использовали функцию var_dump(), которая не совсем подходит для отображения массивов. Она просто выводит значение и тип передаваемой ей переменной. Но часто информация о типе может затруднить обработку выводимой строки. Поэтому в PHP есть несколько специализированных функций. Для вывода значений массива применяются print_r():
1 2 3 4 5 6 |
<?php $fruits []="apple"; $fruits []="banana"; $fruits []="pear"; print_r($fruits); ?> |
Часто нужно рассортировать элементы массива по возрастанию значений или узнать его длину (количество элементов). Использование соответствующих функций я покажу в одном примере:
1 2 3 4 5 6 |
<?php $ar1=array(10,5,9,13,15); sort($ar1); echo "В массиве ".count($ar1)." элементов<br/>"; print_r($ar1); ?> |
Манипуляции со строками
Рассмотрим, какие существуют в PHP функции работы со строками. Главную из них мы уже использовали сегодня. Функция echo () служит для вывода строк. Теперь рассмотрим несколько других. Выводим фразу на экран и с помощью функции strlen() узнаем, сколько в ней символов:
1 2 3 4 |
<?php $str1="Учите PHP и становитесь настоящими профессионалами"; echo $str1."<br/> В фразе ".strlen($str1)." символов"; ?> |
С помощью функции md5() хэшируем строку. Она пригодится для шифрования данных, вводимых в различные формы:
1 2 3 4 |
<?php $str1="Учите PHP и становитесь настоящими провессионалами"; echo "Хэшированная строка: <br/>".md5($str1); ?> |
Перетасовываем все символы фразы в случайном порядке. Для этого используем функцию str_shuffle():
1 2 3 4 |
<?php $str1="учите PHP и становитесь настоящими провессионалами"; echo "Строка' ".$str1." ' в перетасованном виде:<br/>".str_shuffle($str1); ?> |
Это всего лишь несколько функций PHP, предназначенных для работы со строковыми данными. На самом деле их намного больше, и для их демонстрации понадобилась бы отдельная большая статья. А в этом материале я привел лишь некоторые из них, чтобы показать вам, как легко «летать» на PHP :).
Манипулируем файлами
Что-то мы «мелко» летаем! Давайте поднимемся еще выше, и рассмотрим, какие существуют в PHP функции работы с файлами. А лучше рассмотрим поэтапно весь цикл операций с файлами: от создания до считывания.
Перед тем, как совершать какие-либо действия, нужно открыть файл. Для этого используется функция fopen(). В качестве первого параметра она принимает имя файла или путь к нему. Значением второго аргумента мы устанавливаем режимы доступа к файлу. В своих примерах мы задействуем два режима:
«r» — открывает файл для чтения, путь к которому указан в первом аргументе. Или в текущей директории, если путь не задан.
«w» — открывает файл для записи данных в его начало. Если файла с указанным именем нет, то он будет создан.
Реализуем все вышесказанное:
1 2 3 4 |
<?php $f1=fopen("f1.txt","r+"); $f2=fopen("f2.txt","w"); ?> |
Но в результате мы получили предупреждение о том, что файл f1.txt не найден.
Поэтому используем более универсальный модификатор доступа w+, который позволяет осуществлять чтение и запись. А также создает файл, если его нет. Теперь занесем данные в созданный файл с помощью функции fwrite():
1 2 3 4 5 6 |
<?php $f2=fopen("f2.txt","w+"); $data="Сегодня ".date("Y.m.d"); fwrite($f2,$data); fclose($f2); ?> |
Для получения даты мы воспользовались функцией date(), а затем записали возвращенную ею строку в файл.
И теперь выводим строку на экран. Для этого используем функцию fgets(), которая считывает строку (или файл) до конца.
1 2 3 4 5 6 7 8 9 |
<?php $f2=fopen("f2.txt","r"); while(!feof($f2)) { $str=fgets($f2); echo $str; } fclose($f2); ?> |
Если вы заметили, то я поменял идентификатор доступа на «r», поскольку «w+» после закрытия текущего сеанса и при обращении к файлу в очередной раз полностью перезаписывает или стирает его содержимое. В общем, тут нужно «летать» аккуратнее :).
Ну, и напоследок приведу вам пример, способный снять напряжение после краткого экскурса в возможности PHP:
1 2 3 4 |
<?php $data=file_get_contents("f2.txt"); echo $data; ?> |
В итоге получаем результат, аналогичный предыдущему. На этом все. До следующих увлекательных полетов с PHP!