Примеры скриптов на php. Кэшируйте страницы, управляемые базой данных. Используйте инструменты визуализации баз данных

PHP в примерах - Стивен Хольцнер - 2007.

Вашему вниманию предлагается один из мировых бестселлеров, посвященных программированию на РНР. В рамках одной книги автору удалось, начав с основ языка РНР, охватить весьма широкий круг вопросов - от объектно-ориентированного программирования до сложной обработки web-форм, от сохранения данных сеанса работы до формирования e-mail. Теоретический материал излагается в компактной и сжатой форме, и основное место отдано практическим примерам использования богатых возможностей РНР.
Книга предназначена в основном для начинающих разработчиков на РНР, но и про-фессионат может найти в ней немало интересных моментов.

Введение
Об авторе
Глава 1. Введение в РНР
Доступ к РНР.
Локальная установка РНР
Настройка среды разработки.
Первый скрипт.
Запуск первого скрипта.
Возможные проблемы
РНРиHTML .
Отображение текста
Возможности отображения текста
Синтаксис heredoc
Запуск РНР в командной строке
Комментарии в скриптах
Переменные
Создание переменных
Интерполяция переменных в строках
Переменные, содержащие имена переменных
Константы
Типы данных.
Итоги
Глава 2. Операторы
Математические операторы.
Математические функции
Операторы присваивания
Увеличение и уменьшение
Приоритет операторов
Оператор исполнения
Строковые операторы
Битовые операторы
Условный оператор IF
Операторы сравнения
Логические операторы
Оператор ELSE.
Оператор ELSEIF
Тернарный оператор.
Оператор SWITCH
Циклы FOR
UnmibiWHILE
Циклы DO. . .WHILE.
Циклы FOREACH
Оператор BREAK
Оператор CONTINUE
Альтернативный синтаксис.
Итоги.
Глава 3. Строки и массивы
Функции обработки строк.
Использование строковых функций
Форматирование строк
Преобразование в строки и из строк.
Создание массивов
Модификация элементов массива
Удаление элементов массива
Перебор элементов массива.
Функции для работы с массивами
Сортировка массивов
Навигация по массивам
Преобразование строк в массивы и наоборот.
Извлечение переменных из массивов.
Слияние и разделение массивов.
Сравнение массивов
Обработка данных в массивах.
Многомерные массивы
Многомерные массивы и циклы
Операторы над массивами.
Итоги.
Глава 4. Функции
Создание функции
Передача данных в функцию
Передача массивов в функцию
Значения аргументов по умолчанию
Передача аргумента по ссылке
Функции с переменным количеством аргументов.
Функции, возвращающие значение
Функция, возвращающая массив
Использование списков
Функция, возвращающая ссылки
Локальные переменные.
Глобальные переменные
Статические переменные
Переменные, ссылающиеся на функции
Условное описание функций
Вложенные функции.
Вложенные файлы
Обработка ошибок
Итоги.
Глава 5. Элементы управления HTML
Создание web-форм
Текстовые поля.
Получение данных из текстовых полей
Многострочные поля.
Выключатели (checkboxes)
Переключатели (radio buttons)
Списки
Скрытые поля
Поля для паролей
Кнопка-изображение
Загрузка файлов.
Обработка загруженного файла
Кнопки: вариант 1
Кнопки: вариант 2
Кнопки: вариант 3
Итоги
Глава 6. Web-приложения
Отображение данных формы
Переменные сервера.
Заголовки HTTP.
Определение типа браузера.
Перенаправление.
Организация полей форм в массивы
Приложение из одной страницы
Проверка данных
Обязательное для заполнение поле
Проверка числовых полей.
Проверка строковых полей.
Удаление тегов HTML
Кодирование тегов HTML.
Сохранение данных
Использование JavaScript для проверки данных
HTTP-аутентификация
Итоги.
Глава 7. ООП и файлы
Классы и объекты
Создание класса.
Создание объекта
Управление доступом к свойствам и методам
Конструкторы объектов
Наследование классов
Наследование и защищенные методы
Перекрытие методов.
Доступ к методам базового класса
Открытие файла: fopen
Чтение строк текста: fgeta
Чтение символов: fgetc
Двоичное чтение файла: fread
Чтение файла целиком: filegetcontents
Синтаксический разбор файла: fscanf
Запись в файл: fwrite.
Добавление к файлу: fwrite.
Запись файла целиком: fileputcontents,
Итоги.
Глава 8. Базы данных
Базы данных
Основы SQL
Настройка РНР для работы с базами данных
Создание базы данных в MySQL
Добавление данных
Доступ к базе MySQL.
Создание базы данных
Создание новой таблицы
Добавление данных
Отображение данных.
Изменение данных
Сортировка данных
Удаление данных.
Установка модуля DB
Отображение данных при помощи DB.
Добавление данных при помощи DB.
Изменение данных при помощи DB.
Итоги
Глава 9. Cookie, сеансы, FTP, e-mail
Установка cookie
Чтение cookie.
Срок действия cookie
Удаление cookie
Использование FTP.
Список файлов каталога
Загрузка файла с FTP-сервера
Загрузка файла на FTP-сервер
Отправка e-mail
E-mail с дополнительными заголовками
E-mail с вложенными файлами
Сеансы.
Сохранение данных сеансов.
Создание счетчика посещений
Сеансы без cookie
Удаление данных сеанса
Итоги
Приложение А. Справочник по языку.
Создание скриптов.
Типы данных.
Переменные
Предопределенные переменные
Массивы
Операторы
Оператор if.
Оператор else.
Оператор else if
Оператор switch
Оператор while
Оператор do . . .while
Оператор for
Оператор f о reach.
Функции
Классы и объекты.
Приложение Б. Справочник функций.

Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу PHP в примерах - Стивен Хольцнер - fileskachat.com, быстрое и бесплатное скачивание.

PHP - это интерпретируемый язык для создания активных Web-страниц. Программа на PHP, подобно тексту на JavaScript, VBScript или ASP, вставляется в HTML-файл. Начало и конец программы отмечаются специальными скобками . Текст вне этих скобок PHP не интерпретирует: он передается Web-браузеру "как есть".
PHP - это Си-подобный язык, предназначенный для быстрого создания программ на WEB-сервере. Он похож на Perl и ASP, но на порядок удобней их. Программы на PHP защищены от взлома методом "кривых символов". PHP вместе с Apache - самый популярный WEB-сервер - работает гораздо эффективней, чем Perl+Apache.
PHP - это система разработки скриптов, включающая в себя CGI - интерфейс, интерпретатор языка и набор функций для доступа к базам данных и различным объектам WWW. На данный момент PHP является наиболее удобным и мощным средством разработки приложений WWW и интерфейсов к БД в Интернет.
PHP - это интерпретируемый язык программирования, код которого встраивается непосредственно в HTML-страницы. При запросе пользователя web-сервер просматривает документ, выполняет найденные в нем PHP-инструкции, а результат их выполнения возвращает пользователю. При этом статическая часть документа, написанная на языке HTML, фактически является шаблоном, а изменяемая часть формируется при исполнении PHP-инструкций. Для удаленного пользователя подобные документы ничем не отличаются от обычных статических HTML-документов, за исключением того, что в расширении имени файла для таких документов может стоять не htm или html, а phtml или php3(4).
Сами скрипты находятся на сервере и их содержимое посетителю сайта просмотреть невозможно. Файлы скриптов имеют расширение *.php3 или *.phtml. При активации скрипта серверная программа выполняет все команды php этого скрипта, не затрагивая статическую часть документа (HTML-код) и результат возвращается программе-браузеру. В итоге пользователь видит обычную веб-страницу, отличающеюся от других только расширением.
В настоящее время PHP поддерживается подавляющим большинством представителей хостинга. Входит в LAMP - «стандартный» набор для создания вебсайтов (Linux, Apache, MySQL, PHP (Python или Perl)).
В области программирования для Сети PHP - один из популярнейших скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п. Любой желающий может разработать своё собственное расширение и подключить его. Существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Интерпретатор PHP подключается к веб-серверу либо через модуль, созданный специально для этого сервера (например, для Apache или IIS), либо в качестве CGI-приложения.
Кроме этого, он может использоваться для решения административных задач в операционных системах UNIX, Linux, Windows, Mac OS X и AmigaOS. Однако в таком качестве он не получил распространение, отдавая пальму первенства Perl, Python и VBScript.
Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.
Ныне PHP используется сотнями тысяч разработчиков. Несколько миллионов сайтов сообщают о работе с PHP, что составляет более пятой доли доменов Интернета.
Группа разработчиков PHP состоит из множества людей, добровольно работающих над ядром и расширениями PHP, и смежными проектами, такими, как PEAR или документация языка.

Синтаксис

Простейшая программа Hello world на PHP выглядит следующим образом:

PHP исполняет код, находящийся внутри ограничителей, таких как . Всё, что находится вне ограничителей, выводится без изменений. В основном, это используется для вставки PHP-кода в HTML-документ, например так:

Код на HTML

    </span>Тестируем PHP<span>

    < ?php echo "Hello, world!" ; ?>

Имена переменных начинаются с символа $, тип переменной объявлять не нужно. В отличие от имён функций и классов, имена переменных чувствительны к регистру. Переменные обрабатываются в строках, заключённых в двойные кавычки, и heredoc-строках.
PHP рассматривает переxод на новую строку как пробел, так же как HTML и другие языки со свободным форматом. Инструкции разделяются с помощью точки с запятой (;), за исключением некоторых случаев.
PHP поддерживает три типа комментариев: в стиле языка Си (ограниченные /* */), C++ (начинающиеся с // и идущие до конца строки) и оболочки UNIX (с # до конца строки).

Типы данных
Диапазон целых чисел в PHP зависит от платформы (обычно это диапазон 32-битных знаковых целых чисел). Числа можно задавать в десятичной, восьмеричной и шестнадцатеричной системах счисления. Диапазон вещественных чисел также зависит от платформы.
В PHP есть булевский тип, имеющий значения TRUE («истина») и FALSE («ложь»). При преобразовании в булевский тип число 0, пустая строка и пустой массив считаются FALSE.
Тип NULL представляет переменную без значения. Единственным значением этого типа является NULL.
Ссылки на внешние ресурсы представляются значениями типа «ресурс». Они, как правило, создаются и обрабатываются функциями из определённых расширений. Примерами ресурсов являются файлы, изображения, базы данных.
Массивы поддерживают числовые и строковые ключи и являются гетерогенными. Массивы могут содержать значения любых типов, включая другие массивы. Порядок элементов и их ключей сохраняется.

Последнее обновление: 1.11.2015

Сейчас мы создадим небольшой сайтик, который призван дать начальное понимание работы с PHP.

Для создания программ на PHP нам потребуется текстовый редактор. Наиболее популярным на сегодняшний день является программа Notepad++

Перейдем к ранее созданному каталогу C:\localhost , который будет хранить все документы сайта. Создадим текстовый файл и назовем его index.html . Откроем его в текстовом редакторе и добавим в него следующий код:

Первый сайт на PHP

Введи свои данные:

Введите имя:

Введите фамилию:

Код html содержит форму с двумя текстовыми полями. При нажатии на кнопку данные этой формы отсылаются скрипту display.php , так как он указан в атрибуте action .

Теперь создадим этот скрипт, который будет обрабатывать данные. Добавим в папку C:\localhost новый текстовый файл. Переименуем его в display.php. По умолчанию файлы программ на php имеют расширение .php . Итак, добавим в файл display.php следующий код:

Первый сайт на PHP ".$name . " " . $surname . ""; ?>

Здесь уже в разметке html идут вкрапления кода PHP. Для добавления выражений PHP на страницу используются теги , между которыми идут инструкции на языке PHP. В коде php мы получаем данные формы и выводим их на страницу.

Каждое отдельное выражение PHP должно завершаться точкой с запятой. В данном случае у нас три выражения. Два из них получают переданные данные формы, например, $name = $_POST["firstname"]; .

$name - это переменная, которая будет хранить некоторое значение. Все переменные в PHP предваряются знаком $. И так как форма на странице index.html использует для отправки метод POST, то с помощью выражения $_POST["firstname"] мы можем получить значение, которое было введено в текстовое поле с атрибутом name="firstname" . И это значение попадает в переменную $name.

С помощью оператора echo можно вывести на страницу любое значение или текст, которые идут после оператора. В данном случае (echo "Ваше имя: ".$name . " " . $surname . "") с помощью знака точки текст в кавычках соединяется со значениями переменных $name и $surname и выводится на страницу.

Теперь обратимся к форме ввода, перейдя по адресу http://localhost:8080 :

Введем какие-нибудь данные и нажмем на кнопку отправить:

Итак, у нас сработал скрипт display.php , который получил и вывел отправленные данные на страницу.

Create a file named hello.php and put it in your web server"s root directory (DOCUMENT_ROOT) with the following content:

Example #1 Our first PHP script: hello.php



PHP Test


Hello World

" ; ?>

Use your browser to access the file with your web server"s URL, ending with the /hello.php file reference. When developing locally this URL will be something like http://localhost/hello.php or http://127.0.0.1/hello.php but this depends on the web server"s configuration. If everything is configured correctly, this file will be parsed by PHP and the following output will be sent to your browser:

PHP Test

Hello World

This program is extremely simple and you really did not need to use PHP to create a page like this. All it does is display: Hello World using the PHP echo statement. Note that the file does not need to be executable or special in any way. The server finds out that this file needs to be interpreted by PHP because you used the ".php" extension, which the server is configured to pass on to PHP. Think of this as a normal HTML file which happens to have a set of special tags available to you that do a lot of interesting things.

If you tried this example and it did not output anything, it prompted for download, or you see the whole file as text, chances are that the server you are on does not have PHP enabled, or is not configured properly. Ask your administrator to enable it for you using the Installation chapter of the manual. If you are developing locally, also read the installation chapter to make sure everything is configured properly. Make sure that you access the file via http with the server providing you the output. If you just call up the file from your file system, then it will not be parsed by PHP. If the problems persist anyway, do not hesitate to use one of the many options.

The point of the example is to show the special PHP tag format. In this example we used to indicate the start of a PHP tag. Then we put the PHP statement and left PHP mode by adding the closing tag, ?> . You may jump in and out of PHP mode in an HTML file like this anywhere you want. For more details, read the manual section on the basic PHP syntax .

Note : A Note on Line Feeds

Line feeds have little meaning in HTML, however it is still a good idea to make your HTML look nice and clean by putting line feeds in. A linefeed that follows immediately after a closing ?> will be removed by PHP. This can be extremely useful when you are putting in many blocks of PHP or include files containing PHP that aren"t supposed to output anything. At the same time it can be a bit confusing. You can put a space after the closing ?> to force a space and a line feed to be output, or you can put an explicit line feed in the last echo/print from within your PHP block.

Note : A Note on Text Editors

There are many text editors and Integrated Development Environments (IDEs) that you can use to create, edit and manage PHP files. A partial list of these tools is maintained at » PHP Editors List . If you wish to recommend an editor, please visit the above page and ask the page maintainer to add the editor to the list. Having an editor with syntax highlighting can be helpful.

Note : A Note on Word Processors

Word processors such as StarOffice Writer, Microsoft Word and Abiword are not optimal for editing PHP files. If you wish to use one for this test script, you must ensure that you save the file as plain text or PHP will not be able to read and execute the script.

Note : A Note on Windows Notepad

If you are writing your PHP scripts using Windows Notepad, you will need to ensure that your files are saved with the .php extension. (Notepad adds a .txt extension to files automatically unless you take one of the following steps to prevent it.) When you save the file and are prompted to provide a name for the file, place the filename in quotes (i.e. " hello.php "). Alternatively, you can click on the "Text Documents" drop-down menu in the "Save" dialog box and change the setting to "All Files". You can then enter your filename without quotes.

Now that you have successfully created a working PHP script, it is time to create the most famous PHP script! Make a call to the phpinfo() function and you will see a lot of useful information about your system and setup such as available predefined variables , loaded PHP modules, and configuration settings. Take some time and review this important information.

Example #2 Get system information from PHP

1. Подружитесь со справочником по PHP

Если вы новичок в PHP, значит, пришло время познакомиться с внушающим почтение справочником PHP. Справочник по PHP невероятно исчерпывающий и содержит действительно полезные комментарии к каждой статье. Перед тем, как задавать вопросы или пытаться самостоятельно разрешить проблему, сэкономьте время и просто возьмите курс на справочник. Ответы на ваши вопросы уже удобно разместились в полезной статье на сайте PHP.net.
В данном случае мы Вам рекомендуем поискать самостоятельно справочники на русском языке, лучше php для начинающих. Будем рады, если Вы дадите ссылке на полезные справочники в комментариях к статье (Просто учитывайте, что это перевод статьи).

2. Включите отчет об ошибках

6. Делайте отступы и используйте пробелы в коде для читаемости

Если вы не используете отступы и пробелы в коде, то результат выглядит, как картина Джексона Поллака (Jackson Pollack). Обеспечьте читаемость своего кода и нормальный поиск, потому что почти наверняка в будущем вы будете делать в нем изменения. IDE и современные текстовые редакторы могут автоматически делать отступы в коде.

7. Делайте код многоуровневым

Разделение на уровни ваших приложений – это ничто иное, как разделение различных компонентов кода на части. В будущем это даст вам возможность легко изменять код.

8. Всегда используйте

Часто программисты пытаются использовать сокращения в операторах PHP. Вот как это обычно делается:

<% echo "Hello world"; %>

echo "Hello world" ;

<% echo "Hello world" ; %>

Хотя это действительно экономит несколько символов, все эти методы являются устаревшими и неофициальными. Придерживайтесь стандартного , так как это гарантированно будет поддерживаться всеми будущими версиями.

9. Используйте содержательные, последовательные названия

Именование – не только для вашего собственного удовольствия. Нет ничего хуже, чем продираться сквозь бессмысленные условные обозначения другого программиста. Помогите самому себе и другим, используя для своих классов и свойств имена, имеющие смысл.

10. Комментируйте, комментируйте, комментируйте

Кроме использования пробелов и отступов для разделения кода, вам также придется использовать встроенные комментарии, чтобы снабжать примечаниями свой код. Позже вы поблагодарите сами себя, когда придется возвращаться и искать что-либо в коде, или если вы просто не помните того, что делала определенная функция. Это также полезно для тех, кому нужно просмотреть ваш код.

11. Установите MAMP/WAMP

MySQL — самый популярный вид базы данных, используемый с PHP (хотя и не единственный). Если нужно настроить локальное окружение для разработки и тестирования ваших PHP-приложений на компьютере, предусмотрите установку MAMP (Mac) или WAMP (Windows). Установка MySQL на ваш собственный компьютер может стать утомительным процессом, а оба этих программных пакета содержат MySQL. Ловко и просто.

12. Установите лимиты своим скриптам

Установка лимита времени на PHP-скрипты – очень ответственная вещь. Бывают моменты, когда скрипты выходят из строя, и когда это произойдет, вам придется использовать свойство set_time_limit (установить лимит времени), чтобы избежать бесконечно повторяющихся циклов и истечения таймаутов времени соединения с базой данных. Set_time_limit устанавливает лимит времени на максимальное количество секунд, за которое выполняется скрипт (по умолчанию 30). По истечении этого времени возбуждается неустранимая ошибка.

13. Используйте объекты (или ООП)

Объектно-ориентированное программирование (ООП) использует объекты, чтобы представлять компоненты приложения. ООП – это не только способ разбить свой код на отдельные логические секции, оно также снижает количество повторений кода и делает намного более легким его модифицирование в будущем.

14. Поймите разницу между одинарными и двойными кавычками

Использование одинарных кавычек в строках более эффективно, так как парсеру (синтаксическому анализатору) не приходится просеивать код в поиске специальных символов (прим. перев. escape-последовательностей) и прочих вещей, что позволяют двойные кавычки. Там, где это возможно, старайтесь всегда использовать одинарные кавычки.

Возражение: Собственно, это не обязательно верно. Тесты Benchmark показывают, что при тестировании строк без переменных существуют определенные преимущества быстродействия при использовании двойных кавычек.

15. Не ставьте phpinfo() в свой Webroot

Phpinfo – чудесная вещь. Просто создав PHP-файл, в котором есть:

и пристроив его где-нибудь на сервере, вы сможете незамедлительно узнавать все об окружении своего сервера. Тем не менее, множество новичков поместит файл, содержащий phpinfo() в webroot сервера. Это чрезвычайно небезопасная практика, и если чей-то пытливый ум получит доступ, он может потенциально сглазить ваш сервер. Убедитесь, что phpinfo() находится в безопасном месте, а в качестве дополнительной меры удалите его, как только закончите.

16. Никогда, никогда не доверяйте своим пользователям

Если в приложении есть места для входа пользователей, вы всегда должны предполагать, что кто-то попробует ввести сомнительный код. (Мы не подразумеваем, что ваши пользователи — плохие люди. Это просто здравый смысл.) Отличный способ уберечь свой сайт от хакеров – всегда инициализировать свои переменные для защиты сайта от XSS-атак. На PHP.net есть пример должным образом закрытой формы с инициализированными переменными:

if (correct_user ($_POST [ "user" ] , $_POST [ "password" ] ) {

$login = true ;

if ($login ) {

forward_to_secure_environment () ;

17. Храните пароли зашифрованными

Многие новички в PHP часто сбрасывают деликатные данные, такие как пароли, в базу данных, не применяя шифрование. Рассмотрите использование MD5 для шифрования паролей перед тем, как выкладывать их базу данных.

echo md5("myPassword"); // renders -

echo md5 ("myPassword" ) ; // renders -

Возражение: Тем не менее, помните, что хэши MD5 уже давно скомпрометированы. Безусловно, они скорее безопасны, чем нет, но с помощью гигантской “спектральной таблицы” хакеры могут восстановить ваш хэш. Для обеспечения еще большей безопасности обдумайте возможность добавления «соли» (помех в виде «белого шума»). «Соль» – это обычно дополнительный набор символов, которые вы присоединяете к пользовательской строке.

18. Используйте инструменты визуализации баз данных

Если вам кажется сложным планировать и изменять базы данных для своих PHP-приложений, можно было бы рассмотреть возможность использования инструмента визуализации баз данных. Пользователи MySQL могут работать с DBDesigner и MySQL Workbench для визуального дизайна своих баз данных.

19. Используйте буферизацию вывода

Буферизация вывода – это простой способ очень сильно улучшить качество и скорость вашего PHP-скрипта. Без буферизации вывода ваш скрипт будет показывать HTML на странице так, как он обрабатывается – частями. Добавление буферизации вывода позволяет PHP хранить HTML как переменную и посылать его на браузер единой порцией.

Для активирования функции буферизации вывода просто добавьте ob_start() как здесь в начале файла.

Возражение: Хотя это и не требуется, обычно считается хорошей практикой просто взять и прикрепить функцию “ob_end_flush();” к концу документа. P.S. Хотите также сжать HTML? Просто смените “ob_start();”на “ob_start(‘ob_gzhandler’)”;

XHTML

untitled

untitled

20. Оберегайте свой скрипт от атаки SQL-injection

Если вы не отделяете (escape) символы, использующиеся в строках SQL, ваш код уязвим для атаки SQL-injection. Избежать этого можно, используя либо функцию mysql_real_escape_string (прим. перев. для отделения символов), либо подготовленные операторы SQL (prepared statements).

Вот пример mysql_real_escape_string в действии:

$username = mysql_real_escape_string($GET["username"]);

$username = mysql_real_escape_string ($GET [ "username" ] ) ;

И подготовленного оператора:

21. Попробуйте ORM

Если вы пишете объектно-ориентированный PHP, то можете использовать OR-mapping (ORM). ORM позволяет вам преобразовывать данные между реляционными базами данных и языками объектно-ориентированного программирования. Короче говоря, ORM дает возможность работать с базами данных таким же образом, каким вы работаете с классами и объектами в PHP.

Для PHP есть множество ORM-библиотек, таких как Propel, а также ORM встроен в фреймворки PHP, такие, как CakePHP.

22. Кэшируйте страницы, управляемые базой данных

Кэширование PHP-страниц, управляемых базой данных – отличная идея для улучшения скорости загрузки и производительности своего скрипта. В действительности не так уж трудно создать и извлечь статические файлы содержимого при помощи нашего доброго друга ob_start(). Вот пример, взятый со Snipe.net:

// TOP of your script $cachefile = "cache/".basename($_SERVER["SCRIPT_URI"]); $cachetime = 120 * 60; // 2 hours // Serve from the cache if it is younger than $cachetime if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) { include($cachefile); echo ""; exit; } ob_start(); // start the output buffer // Your normal PHP script and HTML content here // BOTTOM of your script $fp = fopen($cachefile, "w"); // open the cache file for writing fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file fclose($fp); // close the file ob_end_flush(); // Send the output to the browser

// TOP of your script

$cachefile = "cache/" . basename ($_SERVER [ "SCRIPT_URI" ] ) ;

$cachetime = 120 * 60 ; // 2 hours

// Serve from the cache if it is younger than $cachetime

if (file_exists ($cachefile ) && (time () - $cachetime < filemtime ($cachefile ) ) ) {

include ($cachefile ) ;



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: