php файл как открывать
Файлы PHP – для чего нужны, как открыть или конвертировать
Файл с расширением PHP представляет собой файл исходного кода PHP, который содержит код препроцессора гипертекста. Они часто используются в качестве файлов веб-страниц, которые генерируют HTML-код из движка PHP, работающего на веб-сервере.
Содержимое HTML, которое движок PHP создает из кода, – это то, что видно в вашем веб-браузере. Поскольку на веб-сервере выполняется код PHP, доступ к странице PHP не дает вам доступа к коду, а предоставляет контент HTML, который генерирует сервер.
Как открыть файлы PHP
Файлы PHP – это просто текстовые документы, поэтому вы можете открыть их в любом текстовом редакторе или веб-браузере. Блокнот в Windows – один из примеров, но подсветка синтаксиса настолько полезна при кодировании на PHP, что обычно предпочитают более специализированные редакторы PHP.
Некоторые текстовые редакторы включают подсветку синтаксиса. Вот некоторые популярные редакторы PHP: Adobe Dreamweaver, Eclipse PHP Development Tools, Zend Studio, phpDesigner, EditPlus и WeBuilder.
Однако, хотя эти программы позволяют вам редактировать или изменять файлы PHP, они не позволяют вам фактически запускать сервер PHP. Для этого вам нужно что-то вроде веб-сервера Apache.
Как конвертировать файл PHP
См. документацию по jason_encode на PHP.net, чтобы узнать, как преобразовать массивы PHP в код Javascript в формате JSON (JavaScript Object Notation). Это доступно только в PHP 5.2 и выше.
Чтобы сгенерировать PDF-файлы из PHP, смотрите FPDF или dompdf.
Переименование файла таким образом не выполняет реальное преобразование файла, а просто позволяет правильной программе открыть файл. Реальные преобразования обычно происходят либо в инструменте преобразования файлов, либо в меню «Сохранить как» или «Экспорт» программы.
Как заставить PHP работать с HTML
Код PHP, встроенный в файл HTML, понимается как PHP, а не HTML, если он заключен в эти теги вместо общего тега HTML:
Иногда можно увидеть, что веб-страница использует PHP, посмотрев её URL, например, когда файл PHP по умолчанию называется index.php. В этом примере это может выглядеть как http://www.examplesite.com/index.php
Дополнительная информация о PHP
PHP был портирован почти на все операционные системы и полностью бесплатен для использования. Официальный сайт PHP – это PHP.net. Есть целый раздел документации, который служит онлайн-руководством по PHP, если вам нужна помощь, чтобы узнать больше о том, что вы можете делать с PHP или как всё это работает. Ещё один хороший источник – W3Schools.
Первая версия PHP была выпущена в 1995 году и называлась Personal Home Page Tools (инструменты PHP). Изменения проводились на протяжении многих лет, новые версии выпускались каждые несколько месяцев.
Скрипты на стороне сервера – наиболее распространенное применение PHP. Как описано выше, это работает с синтаксическим анализатором PHP, веб-сервером и веб-браузером, где браузер обращается к серверу, на котором выполняется программное обеспечение PHP, так что браузер может отображать всё, что производит сервер.
Другой сценарий командной строки, где не используются ни браузер, ни сервер. Эти типы реализаций PHP полезны для автоматизированных задач.
PHP5 Открыть, прочитать, закрыть файл
В этой главе Вы научитесь, как открыть, прочитать и закрыть файл на сервере.
PHP Открытый файл
Во время занятий, будем использовать текстовый файл, «webdictionary.txt»,:
Первый параметр fopen содержит, имя открываемого файла, а второй параметр указывает, в каком режиме должен быть открыт файл. Следующий пример также генерирует сообщение, если функции fopen не удается открыть указанный файл:
Пример
Совет: Функции fread() и fclose() будут объяснены позже.
Файл может быть открыт в одном из следующих режимов:
Режим | Описание |
---|---|
r | Открыть файл только для чтения. Указатель файла на начало файла |
w | Открыть файл только для записи. Удаляет содержимое файла или создает новый файл, если он не существует. Указатель файла на начало файла |
a | Открыть файл только для записи. Существующие данные в файле сохраняются. Указатель файла начинается в конце файла. Создает новый файл, если файл не существует |
x | Создает новый файл только для записи. Возвращает false и сообщение об ошибке, если файл уже существует |
r+ | Открытие файла для чтения и записи. Указатель файла на начало файла |
w+ | Открытие файла для чтения и записи. Удаляет содержимое файла или создает новый файл, если он не существует. Указатель файла на начало файла |
a+ | Открытие файла для чтения и записи. Существующие данные в файле сохраняются. Указатель файла начинается в конце файла. Создает новый файл, если файл не существует |
x+ | Создает новый файл для чтения и записи. Возвращает false и сообщение об ошибке, если файл уже существует |
PHP Чтение файла
Первый параметр fread() содержит имя файла для чтения, а второй параметр указывает максимальное число байтов для чтения.
Следующий PHP код считывает «webdictionary.txt» файл до конца:
PHP Закрыть Файл
Функция fclose() используется для закрытия открытого файла.
Это хорошая практика программирования, чтобы закрыть все файлы, после того как закончили работу с ними. Вы не хотите открыть файл на ваш сервер принимает ресурсы!
Функция fclose() требует имя файла (или переменной, содержащей имя файла), который нужно закрыть:
PHP Чтение одной строки
Функция fgets() используется для чтения одной строки из файла.
В примере ниже выводится первая строка файла «webdictionary.txt»:
Пример
PHP Проверить отключение файла
Функция feof() проверяет, отключение файла «end-of-file» (EOF) было достигнуто.
Функция feof() полезен для цикла данных неизвестной длины.
В приведенном примере файл «webdictionary.txt» выводит строку, пока не будет достигнут конец файла:
Пример
PHP Чтение одного символа
Функция fgetc() используется для чтения одного символа из файла.
В приведенном примере файл «webdictionary.txt» вводит символ, пока не будет достигнут конец файла:
Пример
Примечание: После вызова функции fgetc() указатель файла перемещается на следующий символ.
РНР Полный справочник файловой системы
Для полной справки функций файловой системы, перейдите к нашему полному PHP Справочник файловой системы.
Расширение файла PHP
PHP Source Code Format
Что такое файл PHP?
PHP файловые приложения
PHP-файлы используются для генерации HTML-файлов для веб-сайтов с использованием PHP-движка сервера. Файлы PHP также используются для создания веб-приложений. Веб-сайты обычно используют файлы PHP для обработки онлайн-форм, например, формы контактных данных, или в качестве средства доступа к базам данных. Известная система управления контентом WordPress широко использует PHP-скрипты.
Обработка файлов PHP
Код PHP-файла обрабатывается механизмом PHP, находящимся на удаленном WWW-сервере, который генерирует динамический HTML-код. Эти HTML-данные, содержащие содержимое веб-сайта, затем отправляются в веб-браузер пользователя и отображаются в виде веб-страницы. Этот процесс гарантирует, что пользователь не сможет получить доступ к реальному PHP-коду даже при просмотре исходного кода страницы.
Дополнительная информация
Программы, которые поддерживают PHP расширение файла
Следующий список содержит программы, сгруппированные по 3 операционным системам, которые поддерживают PHP файлы. Файлы с расширением PHP, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.
Программы, обслуживающие файл PHP
Как открыть файл PHP?
Причин, по которым у вас возникают проблемы с открытием файлов PHP в данной системе, может быть несколько. Что важно, все распространенные проблемы, связанные с файлами с расширением PHP, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Мы подготовили список, который поможет вам решить ваши проблемы с файлами PHP.
Шаг 1. Скачайте и установите Adobe Dreamweaver
Основная и наиболее частая причина, препятствующая открытию пользователями файлов PHP, заключается в том, что в системе пользователя не установлена программа, которая может обрабатывать файлы PHP. Эта проблема может быть решена путем загрузки и установки # РЕКОМЕНДОВАННОЙ # или другой совместимой программы, такой как EditPlus, Zend Studio, phpDesigner. Полный список программ, сгруппированных по операционным системам, можно найти выше. Если вы хотите загрузить установщик Adobe Dreamweaver наиболее безопасным способом, мы рекомендуем вам посетить сайт Adobe Systems Incorporated и загрузить его из официальных репозиториев.
Шаг 2. Убедитесь, что у вас установлена последняя версия Adobe Dreamweaver
Если у вас уже установлен Adobe Dreamweaver в ваших системах и файлы PHP по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Иногда разработчики программного обеспечения вводят новые форматы вместо уже поддерживаемых вместе с новыми версиями своих приложений. Если у вас установлена более старая версия Adobe Dreamweaver, она может не поддерживать формат PHP. Последняя версия Adobe Dreamweaver должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.
Шаг 3. Назначьте Adobe Dreamweaver для PHP файлов
Если у вас установлена последняя версия Adobe Dreamweaver и проблема сохраняется, выберите ее в качестве программы по умолчанию, которая будет использоваться для управления PHP на вашем устройстве. Метод довольно прост и мало меняется в разных операционных системах.
Изменить приложение по умолчанию в Windows
Изменить приложение по умолчанию в Mac OS
Шаг 4. Проверьте PHP на наличие ошибок
Если проблема по-прежнему возникает после выполнения шагов 1-3, проверьте, является ли файл PHP действительным. Отсутствие доступа к файлу может быть связано с различными проблемами.
1. Проверьте PHP файл на наличие вирусов или вредоносных программ.
Если PHP действительно заражен, возможно, вредоносное ПО блокирует его открытие. Сканируйте файл PHP и ваш компьютер на наличие вредоносных программ или вирусов. PHP файл инфицирован вредоносным ПО? Следуйте инструкциям антивирусного программного обеспечения.
2. Убедитесь, что структура файла PHP не повреждена
Если файл PHP был отправлен вам кем-то другим, попросите этого человека отправить вам файл. В процессе копирования файла могут возникнуть ошибки, делающие файл неполным или поврежденным. Это может быть источником проблем с файлом. При загрузке файла с расширением PHP из Интернета может произойти ошибка, приводящая к неполному файлу. Попробуйте загрузить файл еще раз.
3. Убедитесь, что у вас есть соответствующие права доступа
Существует вероятность того, что данный файл может быть доступен только пользователям с достаточными системными привилегиями. Выйдите из своей текущей учетной записи и войдите в учетную запись с достаточными правами доступа. Затем откройте файл PHP Source Code Format.
4. Убедитесь, что ваше устройство соответствует требованиям для возможности открытия Adobe Dreamweaver
Если система перегружена, она может не справиться с программой, которую вы используете для открытия файлов с расширением PHP. В этом случае закройте другие приложения.
5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений
Последние версии программ и драйверов могут помочь вам решить проблемы с файлами PHP Source Code Format и обеспечить безопасность вашего устройства и операционной системы. Возможно, файлы PHP работают правильно с обновленным программным обеспечением, которое устраняет некоторые системные ошибки.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла PHP мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле PHP.
Как прочитать большой файл средствами PHP (не грохнув при этом сервак)
PHP разработчикам не так уж часто приходится следить за расходом памяти в своих приложениях. Сам движок PHP неплохо подчищает мусор за нами, да и модель веб-сервера с контекстом исполнения, «умирающим» после выполнения каждого запроса, позволяет даже самому плохому коду не создавать больших долгих проблем.
Однако, в некоторых ситуациях, мы можем столкнуться с проблемами нехватки оперативной памяти — например, пытаясь запустить композер на маленьком VPS, или при открытии большого файла на сервере не богатом ресурсами.
Последняя проблема и будет рассмотрена в этом уроке.
Мерила Успеха
При проведении любых оптимизаций кода, мы всегда должны замерять результаты его выполнения до и после, для того чтобы оценивать эффективность(или пагубность) наших оптимизаций.
Обычно измеряют загрузку CPU и использование оперативной памяти. Часто бывает, что экономия одного, ведёт к увеличенным затратам другого и наоборот.
В асинхронной модели приложения(мультипроцессорные и многопоточные) всегда очень важно следить как за процессором, так и за памятью. В классических приложениях контроль ресурсов становится проблемой лишь при приближении к лимитам сервера.
Измерять использование CPU внутри PHP плохая идея. Лучше использовать какую-либо утилиту, как top из Ubuntu или macOS. Если вы у вас Windows, то можно использовать Linux Subsystem, чтобы иметь доступ к top.
В этом уроке мы будем измерять использование памяти. Мы посмотрим, как память расходуется в традиционных скриптах, а затем применим парочку фишек для оптимизации и сравним результаты. Надеюсь, к концу статьи, читатель получит базовое понимание основных принципов оптимизации расхода памяти при чтении больших объемов данных.
Будем замерять память так:
Эту функцию мы будем использовать в конце каждого скрипта, и сравнивать полученные значения.
Какие есть варианты?
Существует много разных подходов для эффективного чтения данных, но всех их условно можно разделить на две группы: мы либо считываем и сразу же обрабатываем считанную порцию данных(без предварительной загрузки всех данных в память), либо вовсе преобразуем данные в поток, не заморачиваясь над его содержимым.
Давайте представим, что для первого варианта мы хотим читать файл и отдельно обрабатывать каждые 10000 строк. Нужно будет держать по крайней мере 10000 строк в памяти и передавать их в очередь(в какой бы форме она не была реализована).
Для второго сценария, предположим, мы хотим сжать содержимое очень большого ответа API. Нам не важно, что за данные там содержатся, важно вернуть их в сжатой форме.
В обоих случаях нужно считать большие объемы информации. В первом, нам известен формат данных, во втором, формат значения не имеет. Рассмотрим оба варианта.
Чтение Файла Строка За Строкой
Есть много функций для работы с файлами. Давайте напишем с их помощью свой ридер:
Тут мы считываем файл с работами Шекспира. Размер файла около 5.5MB и пиковое использование памяти 12.8MB.
А теперь, давайте воспользуемся генератором:
Файл тот же, а пиковое использование памяти упало до 393KB! Но пока мы не выполняем со считываемыми данными никаких операций, это не имеет практической пользы. Для примера, мы можем разбивать документ на части, если встретим две пустые строки:
Хотя мы разбили документ на 1,216 кусков, мы использовали лишь 459KB памяти. Всё это, благодаря особенности генераторов — объем памяти для их работы равен размеру самой большой итерируемой части. В данном случае, самая большая часть состоит из 101,985 символов.
Генераторы могут применяться и в других ситуациях, но данный пример хорошо демонстрирует производительность при чтении больших файлов. Возможно, генераторы один из лучших вариантов для обработки данных.
Пайпинг между файлами
В ситуациях, когда обработка данных не требуется, мы можем пробрасывать данные из одного файла в другой. Это называется пайпингом( pipe — труба, возможно потому что мы не видим что происходит внутри трубы, но видим что входит и выходит и неё). Это можно сделать с помощью потоковых методов. Но сперва, давайте напишем классический скрипт, который тупо передает данные из одного файла в другой:
Неудивительно, что этот скрипт использует намного больше памяти, чем занимает копируемый файл. Это связано с тем, что он должен читать и хранить содержимое файла в памяти до тех пор пока файл не будет скопирован полностью. Для маленьких файлов в этом нет ничего страшного, но не для больших.
Давайте попробуем стримить(или пайпить) файлы, один в другой:
Код довольно странный. Мы открываем оба файла, первый на чтение, второй на запись. Затем мы копируем первый во второй, после чего закрываем оба файла. Возможно будет сюрпризом, но мы потратили всего 393KB.
Для того чтобы осуществить задуманное этим способом потребовалось 581KB. Теперь попробуем сделать то же самое с помощью потоков.
Потратили немного меньше памяти(400KB) при одинаковом результате. А если б нам не нужно было сохранять картинку в памяти, мы могли бы сразу застримить её в stdout :
Другие потоки
Существуют и другие потоки, в/из которых можно стримить:
Фильтры
Есть еще одна фишка, которую мы можем использовать — это фильтры. Промежуточный вариант, который дает нам немного контроля над потоком, без необходимости детально погружаться в его содержимое. Допустим, мы хотим сжать файл. Можно применить zip extension:
Хороший код, но он потребляет почти 11MB. С фильтрами, получится лучше:
Здесь мы используем php://filter/zlib.deflate который считывает и сжимает входящие данные. Мы можем пайпить сжатые данные в файл, или куда-нибудь еще. Этот код использовал лишь 896KB.
Я знаю что это не совсем тот же формат, что и zip архив. Но задумайтесь, если у нас есть возможность выбрать иной формат сжатия, затратив в 12 раз меньше памяти, стоит ли это делать?
Чтобы распаковать данные, применим другой zip фильтр.
Вот парочка статей, для тех кому хотелось бы поглубже погрузиться в тему потоков: “Understanding Streams in PHP” и“Using PHP Streams Effectively”.
Кастомизация потоков
fopen и file_get_contents имеют ряд предустановленных опций, но мы можем менять их как душе угодно. Чтобы сделать это, нужно создать новый контекст потока:
В этом примере мы пытаемся сделать POST запрос к API. Прописываем несколько заголовков, и обращаемся к API по файловому дескриптору. Существует много других опций для кастомизации, так что не будет лишним ознакомиться с документацией по этому вопросу.
Создание своих протоколов и фильтров
Перед тем как закончить, давайте поговорим о создании кастомных протоколов. Если посмотреть в документацию, то можно увидеть пример:
Написание своей реализации такого тянет на отдельную статью. Но если все же озадачиться и сделать это, то можно будет легко зарегистрировать свою обертку для стримов:
Аналогичным образом, можно создать и кастомные фильтры потока. Пример класса фильтра из доков:
И его также легко зарегистрировать:
Хотя это не самая частая проблема, с которой мы мучаемся, очень легко накосячить при работе с большими файлами. В асинхронных приложениях, вообще очень просто положить весь сервер, если не контролировать использование памяти в своих скриптах
Надеюсь, что этот урок подарил вам несколько новых идей(или освежил их в памяти) и теперь вы сможете работать с большими файлами гораздо эффективнее. Познакомившись с генераторами и потоками( и перестав использовать функции по типу file_get_contents ) можно избавить наши приложения от целого класса ошибок. That seems like a good thing to aim for!
Работа с файлами
Включение внешних файлов
В каждый PHP-документ можно включить файл с помощью инструкции include(). Её аргумент: путь к файлу. Этой инструкцией удобно пользоваться при наличии одинаковых кусков кода во многих PHP-программах. Содержимое включаемого файла обрабатывается как простой HTML-текст. Для того, чтобы содержимое этого файла обрабатывалось как PHP-программа, нужно обрамлять его открывающим и закрывающим тегами PHP.
Пример 1
Включаемый файл top.php с PHP-программой:
. Общее приветствие.
. Основная часть.
В данном случае результат будет тем же, если включаемый файл top.php содержит только строку HTML-текста:
Включаемые файлы могут возвращать значения подобно функциям. Использование оператора return прерывает выполнение этого файла так же, как и функции.
Пример 2
Включаемый файл top.php с PHP-программой:
Включаемый файл вернул 56
Инструкцию include() можно использовать внутри цикла. В цикле include() выполняется при каждой итерации. Это можно использовать для включения нескольких файлов. Например:
Оператор include() также можно включать в тело условного оператора.
Несмотря на сходство по внешнему виду с функцией, include() функцией не является, а представляет собой специальную конструкцию языка.
Для указания что файл нужно подключать только один раз используется оператор include_once()
Анализ файлов
Время возвращается в формате Unix, т.е. представляет собой количество секунд, прошедших после 1 января 1970 г. В примере 2 это число преобразуется в понятный для человека формат с помощью функции date( ). Подробнее об этой функции можно узнать в разделе «Дополнительные возможности».
Пример 3
Внимание! С удаленными файлами эти функции не работают. Их можно применять только к локальной файловой системе.
Управление файлами
r | чтение. Указатель файла устанавливается на его начало |
r+ | чтение и запись. Указатель файла устанавливается на его начало |
w | запись. Указатель файла устанавливается на его начало. Все старое содержимое файла теряется. Если файл с указанным именем не существует, функция пытается его создать |
w+ | чтение и запись. Указатель файла устанавливается на его начало. Все старое содержимое файла теряется. Если файл с указанным именем не существует, функция пытается его создать |
a | запись. Указатель файла устанавливается на его конец. Если файл с указанным именем не существует, функция пытается его создать |
a+ | чтение и запись. Указатель файла устанавливается на его конец. Если файл с указанным именем не существует, функция пытается его создать |
Пример 4
Пример 5
Пример 6
1 | Можно читать, нельзя писать |
2 | Нельзя ни читать, ни писать |
3 | Снятие блокировки |
Пример 7
Блокировка с помощью flock() не является абсолютной. С ней будут считаться только те программы, которые тоже используют эту функцию.
Работа с каталогами
0 | Нет доступа |
1 | Доступ для запуска |
2 | Доступ для записи |
3 | Доступ для записи и запуска |
4 | Доступ для чтения |
5 | Доступ для чтения и запуска |
6 | Доступ для чтения и записи |
7 | Полный доступ |
Пример 8
Проверочное выражение цикла сработает не так, как хотелось бы, если в каталоге есть файл с именем «0». В таком случае имя «0» будет преобразовано в 0, что вызовет завершение цикла. Избежать подобного можно, если принять дополнительные меры безопасности, изменив проверочное выражение:
Передача файла с сервера. Скачать файл. DownLoad.
Ручной Download, или как скриптом открыть пользователю окошко сохранения файла. Чтобы в браузере открылся диалог «Сохранить файл» с названием файла file.dat, скрипт должен послать такие заголовки:
Готовый пример отправки файла с диска: Не мешало бы также ссылаться на скрипт как http://. /download.php?file.dat, иначе браузеры, основанные на Mozilla, могут попытаться записать файл как file.dat.php. или указать атрибут download: Примечание: Не используйте заголовок header(«Cache-Control: no-cache») в таких скриптах, большинство версий Internet Explorer не смогут скачать файл.
Следующий пример скрипта демонстрирует как организовать поддержку докачки:
Функции для работы с каталогами
Изменяет корневой каталог текущего процесса на переданный в качестве параметра str. Возвращает TRUE в случае успешного завершения, FALSE в случае возникновения ошибки..
Закрывает поток, связанный с каталогом и переданный в качестве параметра catalog. Перед использованием данной функции, поток должен быть открыт с помощью функции opendir().
Псевдо-объектно-ориентированный механизм для чтения каталога, переданного в параметре каталог. С момента открытия каталога становятся доступными два свойства класса. Свойство «handle» может быть использовано с другими функциями для работы с каталогами, например, с функциями readdir(), rewinddir() и closedir(). Свойство «path» содержит путь к открытому каталогу. Доступны три метода: read, rewind and close.
Замечание: Порядок, в котором метод «read» возвращает элементы каталога, зависит от операционной системы.
Замечание: Также, PHP автоматически определяет внутренний класс Directory, что означает, что вы не сможете определять собственные классы с таким же именем.
Возвращает имя текущего рабочего каталога.
Возвращает дескриптор каталога для последующего использования с функциями closedir(), readdir() и rewinddir().
Если путь не существует или каталог, расположенный по указанному пути, не может быть открыт вследствие правовых ограничений или ошибок файловой системы, функция opendir() возвращает значение FALSE и генерирует сообщение PHP об ошибке уровня E_WARNING. Вы можете запретить вывод сообщения об ошибке, предварив имя функции opendir() символом ‘@’.
Начиная с версии PHP 4.3.0, параметр путь может также являться любым URL’ом, обращение к которому приводит к получению списка его файлов и каталогов. Однако, данный способ работает только при использовании url-упаковщика file://. В версии PHP 5.0.0 была добавлена поддержка url-упаковщика ftp://.
Возвращает имя следующего по порядку элемента каталога. Имена элементов возвращаются в порядке, зависящем от файловой системы.
Обратите внимание, что функция readdir() также возвращает элементы с именами, и, если вы не хотите получать эти значения, просто отбрасывайте их:
Сбрасывает поток каталога, переданный в параметре catalog таким образом, чтобы тот указывал на начало каталога
Возвращает массив, содержащий имена файлов и каталогов, расположенных по пути, переданном в параметре catalog. Если каталог не является таковым, функция возвращает логическое значение FALSE и генерирует сообщение об ошибке уровня E_WARNING.
По умолчанию, сортировка производится в алфавитном порядке по возрастанию. Если указан необязательный параметр order (равен 1), сортировка производится в алфавитном порядке по убыванию. Пример кода