Запись в файлы и чтение файлов с помощью php

Содержание

Содержание

  • basename — Возвращает последний компонент имени из указанного пути
  • chgrp — Изменяет группу файла
  • chmod — Изменяет режим доступа к файлу
  • chown — Изменяет владельца файла
  • clearstatcache — Очищает кеш состояния файлов
  • copy — Копирует файл
  • delete — См. описание функции unlink или unset
  • dirname — Возвращает имя родительского каталога из указанного пути
  • disk_free_space — Возвращает размер доступного пространства в каталоге или файловой системе
  • disk_total_space — Возвращает общий размер файловой системы или раздела диска
  • diskfreespace — Псевдоним disk_free_space
  • fclose — Закрывает открытый дескриптор файла
  • feof — Проверяет, достигнут ли конец файла
  • fflush — Сбрасывает буфер вывода в файл
  • fgetc — Считывает символ из файла
  • fgetcsv — Читает строку из файла и производит разбор данных CSV
  • fgets — Читает строку из файла
  • fgetss — Читает строку из файла и удаляет HTML-теги
  • file_exists — Проверяет существование указанного файла или каталога
  • file_get_contents — Читает содержимое файла в строку
  • file_put_contents — Пишет данные в файл
  • file — Читает содержимое файла и помещает его в массив
  • fileatime — Возвращает время последнего доступа к файлу
  • filectime — Возвращает время изменения индексного дескриптора файла
  • filegroup — Получает идентификатор группы файла
  • fileinode — Возвращает индексный дескриптор файла
  • filemtime — Возвращает время последнего изменения файла
  • fileowner — Возвращает идентификатор владельца файла
  • fileperms — Возвращает информацию о правах на файл
  • filesize — Возвращает размер файла
  • filetype — Возвращает тип файла
  • flock — Портируемая консультативная блокировка файлов
  • fnmatch — Проверяет совпадение имени файла с шаблоном
  • fopen — Открывает файл или URL
  • fpassthru — Выводит все оставшиеся данные из файлового указателя
  • fputcsv — Форматирует строку в виде CSV и записывает её в файловый указатель
  • fputs — Псевдоним fwrite
  • fread — Бинарно-безопасное чтение файла
  • fscanf — Обрабатывает данные из файла в соответствии с форматом
  • fseek — Устанавливает смещение в файловом указателе
  • fstat — Получает информацию о файле, используя открытый файловый указатель
  • ftell — Возвращает текущую позицию указателя чтения/записи файла
  • ftruncate — Урезает файл до указанной длины
  • fwrite — Бинарно-безопасная запись в файл
  • glob — Находит файловые пути, совпадающие с шаблоном
  • is_dir — Определяет, является ли имя файла директорией
  • is_executable — Определяет, является ли файл исполняемым
  • is_file — Определяет, является ли файл обычным файлом
  • is_link — Определяет, является ли файл символической ссылкой
  • is_readable — Определяет существование файла и доступен ли он для чтения
  • is_uploaded_file — Определяет, был ли файл загружен при помощи HTTP POST
  • is_writable — Определяет, доступен ли файл для записи
  • is_writeable — Псевдоним is_writable
  • lchgrp — Изменяет группу, которой принадлежит символическая ссылка
  • lchown — Изменяет владельца символической ссылки
  • link — Создаёт жёсткую ссылку
  • linkinfo — Возвращает информацию о ссылке
  • lstat — Возвращает информацию о файле или символической ссылке
  • mkdir — Создаёт директорию
  • move_uploaded_file — Перемещает загруженный файл в новое место
  • parse_ini_file — Обрабатывает конфигурационный файл
  • parse_ini_string — Разбирает строку конфигурации
  • pathinfo — Возвращает информацию о пути к файлу
  • pclose — Закрывает файловый указатель процесса
  • popen — Открывает файловый указатель процесса
  • readfile — Выводит файл
  • readlink — Возвращает файл, на который указывает символическая ссылка
  • realpath_cache_get — Получает записи из кеша realpath
  • realpath_cache_size — Получает размер кеша realpath
  • realpath — Возвращает канонизированный абсолютный путь к файлу
  • rename — Переименовывает файл или директорию
  • rewind — Сбрасывает курсор файлового указателя
  • rmdir — Удаляет директорию
  • set_file_buffer — Псевдоним stream_set_write_buffer
  • stat — Возвращает информацию о файле
  • symlink — Создаёт символическую ссылку
  • tempnam — Создаёт файл с уникальным именем
  • tmpfile — Создаёт временный файл
  • touch — Устанавливает время доступа и модификации файла
  • umask — Изменяет текущую umask
  • unlink — Удаляет файл

Как открыть файлы PHP

Файлы PHP – это просто текстовые документы, поэтому вы можете открыть их в любом текстовом редакторе или веб-браузере. Блокнот в Windows – один из примеров, но подсветка синтаксиса настолько полезна при кодировании на PHP, что обычно предпочитают более специализированные редакторы PHP.


Некоторые текстовые редакторы включают подсветку синтаксиса. Вот некоторые популярные редакторы PHP: Adobe Dreamweaver, Eclipse PHP Development Tools, Zend Studio, phpDesigner, EditPlus и WeBuilder.

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

Некоторые файлы .PHP могут быть медиа-файлами или изображениями, которым случайно было присвоено расширение .PHP. В этих случаях просто переименуйте расширение файла на правильное, и тогда он будет правильно открываться в программе, которая отображает этот тип файла, например, в видеоплеере, если вы работаете с файлом MP4.

Какой способ лучше выбрать

Мы рассмотрели все четыре возможных варианта, как подключить PHP-файл с целью расширения программы. Оптимальные среди них — конструкции с суффиксом _once.

Без _once происходит постоянное переопределение переменных. Оно может привести к алгоритмическим ошибкам. Еще возможна ошибка при вызове функции, которая находится в дважды подключенном файле

Поэтому наш выбор — include_once и require_once в зависимости от важности файлов для работы программы. Инструкции с суффиксами помогают избежать ошибок, связанных с повторным подключением.

Лайфхак от перфекциониста

Чтобы отличать основные файлы от подключаемых, вторые можно переименовать. К примеру, мы пишем сайт на PHP. Добавим .inc к основным файлам header.php, footer.php и другим. Получим названия вида header.inc.php, footer.inc.php и тому подобные. За счет этого в папке вы сразу поймете, какие скрипты основные, а какие — второстепенные.

Добавлять .inc нужно исключительно для визуального оформления: никакой функциональной нагрузки прием не несет. Но удобство и структура важны в программировании, поэтому старайтесь все делать в едином стиле.

Если вы начинающий PHP-программист, рекомендуем пройти курс «PHP-разработчик». Вы изучите его от азов до нюансов и станете настоящим гуру в профессии.

Курс «PHP-разработчик» Обширная программа для изучения PHP, состоящая из4 курсов. Поможет с нуля овладеть популярным языком программирования, устроиться в IT-компанию вашей мечты или стать независимым разработчиком.

  • Живая обратная связь с преподавателями
  • Неограниченный доступ к материалам курса
  • Стажировка в компаниях-партнёрах
  • Дипломный проект от реального заказчика
  • Гарантия трудоустройства в компании-партнёры для выпускников, защитивших дипломные работы

Создание CSV файла в PHP

Для создания CSV файла, достаточно создать текстовый файл, используя в нужных местах необходимые разделители столбцов и строк.

Важным моментом, является кодировка файла. Для корректного отображения кириллицы следует использовать кодировку cp1251 (windows-1251).

Разделитель колонок

Для русского языка символом-разделителем является ; (точка с запятой). Для англ. , (запятая).

Строки содержащие спец символы: » , ; \r\n или \n или \r должны быть в двойных кавычках «строка».

Двойные кавычки внутри строки, нужно «очистить» поставив перед кавычкой еще одну такую же кавычку: строка «csv» превратиться в «строка «»csv»»». Обрамление в кавычки нужно, чтобы можно было внутри значений колонок использовать разделители ;, , и не переживать что что-то сломается при чтении файла.

Разделитель строк

Для разделения строк в csv файлах можно использовать \r\n (возврат каретки и перенос строки, CR LF). В этом случае, если нужен перенос строки внутри значения колонки, то там используется просто \n.

Также, для разделения строки, может использоваться просто \n (перенос строки, LF). В этом случае, перенос строки внутри значения колонки должен обозначаться как \r (возврат каретки CR).

Функция для создания CSV файла
## Создает CSV файл из переданных в массиве данных.
## @param array  $create_data  Массив данных из которых нужно созать CSV файл.
## @param string $file         Путь до файла 'path/to/test.csv'. Если не указать, то просто вернет результат.
## @return string/false        CSV строку или false, если не удалось создать файл.
## ver 2
function kama_create_csv_file( $create_data, $file = null, $col_delimiter = ';', $row_delimiter = "\r\n" ){

	if( ! is_array($create_data) )
		return false;

	if( $file && ! is_dir( dirname($file) ) )
		return false;

	// строка, которая будет записана в csv файл
	$CSV_str = '';

	// перебираем все данные
	foreach( $create_data as $row ){
		$cols = array();

		foreach( $row as $col_val ){
			// строки должны быть в кавычках ""
			// кавычки " внутри строк нужно предварить такой же кавычкой "
			if( $col_val && preg_match('//', $col_val) ){
				// поправим перенос строки
				if( $row_delimiter === "\r\n" ){
					$col_val = str_replace( "\r\n", '\n', $col_val );
					$col_val = str_replace( "\r", '', $col_val );
				}
				elseif( $row_delimiter === "\n" ){
					$col_val = str_replace( "\n", '\r', $col_val );
					$col_val = str_replace( "\r\r", '\r', $col_val );
				}

				$col_val = str_replace( '"', '""', $col_val ); // предваряем "
				$col_val = '"'. $col_val .'"'; // обрамляем в "
			}

			$cols[] = $col_val; // добавляем колонку в данные
		}

		$CSV_str .= implode( $col_delimiter, $cols ) . $row_delimiter; // добавляем строку в данные
	}

	$CSV_str = rtrim( $CSV_str, $row_delimiter );

	// задаем кодировку windows-1251 для строки
	if( $file ){
		$CSV_str = iconv( "UTF-8", "cp1251",  $CSV_str );

		// создаем csv файл и записываем в него строку
		$done = file_put_contents( $file, $CSV_str );

		return $done ? $CSV_str : false;
	}

	return $CSV_str;

}

Использование:

$create_data = array(
	array(
		'Заголовок 1',
		'Заголовок 2',
		'Заголовок 3',
	),
	array(
		'строка 2 "столбец 1"',
		'4799,01',
		'строка 2 "столбец 3"',
	),
	array(
		'"Ёлочки"',
		4900.01,
		'красный, зелёный',
	)
);

echo kama_create_csv_file( $create_data, THEME_PATH .'csv_file.csv' );

/* Получим

Заголовок 1;Заголовок 2;Заголовок 3
"строка 2 ""столбец 1""";"4799,00";"строка 2 ""столбец 3"""
"""Ёлочки""";4900.01;"красный, зелёный"

*/

Два способа открыть PHP документ

Попробуем открыть файл с расширением .php в первом случае (файл с кодом). Запустить или просмотреть результат выполнения файла без сервера невозможно. Но и это не является большой проблемой. Установить сервер вызовет затруднений даже у начинающих программистов. Инструкция:

  1. Устанавливаем на ПК пакет Денвер – локальный сервер и другие инструменты для удобной работы со скриптами на языке PHP в режиме офлайн, вообще без активного доступа к интернету. Его можно скачать c официального сборки.
  2. Затем берем наш файл, назовем его filename.php, и помещаем в папку веб-сервера.
  3. Открываем любой браузер и в строке вводим путь до файла.
  4. Наблюдаем результат выполнения кода.

Подробнее о втором и третьем пункте инструкции. Следуем в каталог “C:\WebServers\home”, здесь по-умолчанию расположена папка под названием “test”. Теперь по вашему усмотрению: можете выбрать эту папку, можете создать свою здесь же (например, 123). Переходим в папку и создаем еще одну под названием «www». Теперь уже в нее помещаем наш файл “filename.php”. Полный путь до файла будет следующим: “C:\WebServers\home\123(или test)\www\filename.php”.

Запускаем Денвер при помощи кнопки Run. Должна появиться надпись в черном окне командной строки о том, что хост 123 (test) добавлен. Если в версии локального сервера нет иконок, то ищем их в “C:\WebServers\denwer\utils\”.

Далее переходим в браузер и в строку вбиваем следующую информацию: “http://123(test)/filename.php”. И выполняется четвертый пункт инструкции, все готово.

Если вы не связаны с разработками программ и файл с расширением .php появился у вас после закачивания видеозаписей, музыки, то смело пробуем открыть его в Блокноте. Возможно, вам будет выдана ошибка. В таком случае отключаем менеджер загрузок и пробуем снова. В других случаях с большой вероятностью в браузере откроется сохраненная страница сайта, с которого вы начинали скачивать фильм/музыку и т.д. Т.е. вместо непосредственно загрузки контента вы сохранили на жесткий диск саму страницу.

Нелинейная обработка файла: перемещение по файлу

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

fseek($fh, 0);

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

fseek($fh, 1024);

Начиная с PHP V4.0, доступны также несколько других опций. Например, если нужно перейти вперед на 100 байт от вашей текущей позиции, вы можете использовать следующий код:

fseek($fh, 100, SEEK_CUR);

Аналогично, переход назад на 100 байт осуществляется посредством:

fseek($fh, -100, SEEK_CUR);

Если вы хотите перейти назад в положение 100 байт до конца файла, используйте вместо этого .

fseek($fh, -100, SEEK_END);

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

Примечание: вы не можете использовать в дескрипторах файла, ссылающихся на URL.

Зачем разделять и подключать php-сценарии

PHP-разработчики дробят весь исходный код проекта на отдельные сценарии, чтобы с ними проще было работать. Если бы пришлось писать весь код в одном файле, то такой сценарий стал бы просто необъятным и ориентироваться там стало решительно невозможно. Поэтому разделение кода на разные сценарии — это естественный способ бороться со сложностью. Есть и ещё один положительный эффект от подобного деления. Если вынести повторяющиеся блоки кода в отдельные сценарии, то появится возможность повторно использовать один код в разных файлах и подключать его только по требованию. Хороший пример — это пользовательские функции. Очень удобно объявлять их в отдельном сценарии, а затем подключать там, где эти функции понадобятся.

Типы файлов PHP

Ассоциация основного файла PHP

.PHP

Формат файла: .php
Тип файла: PHP Source Code File

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

Создатель: Panic
Категория файла: Веб-файлф
Ключ реестра: HKEY_CLASSES_ROOT\.php

Программные обеспечения, открывающие PHP Source Code File:

Microsoft Notepad, разработчик — Microsoft Corporation

Совместимый с:

Windows
Mac
Linux

Notepad++, разработчик — Don Ho

Совместимый с:

Windows
Mac
Linux

MacroMates TextMate, разработчик — MacroMates

Совместимый с:

Mac

Vim, разработчик — Bram Moolenaar

Совместимый с:

Windows
Mac
Linux
Unix
OS X El Capitan

Adobe Dreamweaver, разработчик — Adobe Systems Incorporated

Совместимый с:

Windows
Mac

Coda, разработчик — Panic

Совместимый с:

Mac

WebsitePainter, разработчик — Ambiera

Совместимый с:

Windows
Mac

GNU Emacs, разработчик — GNU Project

Совместимый с:

Windows
Mac
Linux
GNU

Apple TextEdit, разработчик — Apple

Совместимый с:

Mac

ES-Computing Edit Plus, разработчик — ES-Computing

Совместимый с:

Windows

Sublime Text, разработчик — Sublime HQ Pty Ltd

Совместимый с:

Windows
Mac
Linux

Eclipse CDT, разработчик — The Eclipse Foundation

Совместимый с:

Windows
Mac
Linux

jEdit, разработчик — Open Source

Совместимый с:

Windows
Mac
Linux

NetBeans, разработчик — Open Source

Совместимый с:

Windows
Mac
Linux
Solaris

Atom, разработчик — GitHub, Inc.

Совместимый с:

Windows
Mac
Linux

Notepad2, разработчик — Open Source

Совместимый с:

Windows

Geany, разработчик — Geany Authors

Совместимый с:

Windows
Mac
Linux
Solaris
FreeBSD
NetBSD
OpenBSD

ConTEXT, разработчик — ConTEXT Project

Совместимый с:

Windows

Brackets, разработчик — Adobe Systems Incorporated

Совместимый с:

Windows
Mac
Linux

Kate, разработчик — KDE

Совместимый с:

Windows
Mac
Linux

Zend Studio, разработчик — Rogue Wave

Совместимый с:

Windows
Mac
Linux

PhpStorm, разработчик — JetBrains

Совместимый с:

Windows
Mac
Linux

Zend Server, разработчик — Rogue Wave

Совместимый с:

Windows
Linux
PowerPC
OS X El Capitan

WeBuilder, разработчик — Blumentals Software

Совместимый с:

Windows

PhPEdit, разработчик — WaterProof

Совместимый с:

Windows

HyperEdit, разработчик — Tumult

Совместимый с:

Mac

EasyPHP Devserver & Webserver, разработчик — Open Source

Совместимый с:

Windows

Visual Studio Code, разработчик — Microsoft Corporation

Совместимый с:

Windows
Mac
Linux

WampServer, разработчик — Romain Bourdon

Совместимый с:

Windows

MAMP, разработчик — Open Source

Совместимый с:

Mac

Textastic Code Editor, разработчик — Alexander Blach

Совместимый с:

iOS

EasyEclipse For PHP, разработчик — NexB

Совместимый с:

Windows
Linux

Bluefish, разработчик — SourceForge

Совместимый с:

Windows
Linux
POSIX
Solaris
OS X El Capitan

Editra, разработчик — Cody Precord

Совместимый с:

Windows
Mac
Linux

WebMatrix, разработчик — Microsoft Corporation

Совместимый с:

Windows

Programmer’s Notepad, разработчик — Echo Software (Simon Steele)

Совместимый с:

Windows

RJ TextEd, разработчик — Rickard Johansson

Совместимый с:

Windows

SciTE, разработчик — Neil Hodgson

Совместимый с:

Windows
Mac
Linux

Ассоциации других файлов PHP

.PHP

Формат файла: .php
Тип файла: Callisto PhotoParade Slideshow

Расширение PHP Файл также связан с PhotoParade, программа фото слайд-шоу с помощью Каллисто, которая в настоящее время прекращено.

Создатель: Callisto Corporation
Категория файла: Файлы растровых изображений

Программы, открывающие файлы Callisto PhotoParade Slideshow :

PhotoParade, разработчик — Callisto Corporation

Совместимый с:

Windows

.PHP

Формат файла: .php
Тип файла: CreataCard Quick Prints Project

PHP расширение файла используется CreataCard, программное обеспечение, сделанное AmericanGreetings.com для создания и редактирования открытки. PHP файлы этого типа для занесения сохранены быстрые проекты печати.

Создатель: American Greetings
Категория файла: Файлы данных

Программы, открывающие файлы CreataCard Quick Prints Project :

CreataCard, разработчик — American Greetings

Совместимый с:

Windows
iOS
Android

.PHP

Формат файла: .php
Тип файла: Microsoft Picture It! Publishing Project

PHP файл, связанный с Microsoft Picture It! содержит сохраненную издательский проект, созданный программой.

Создатель: Microsoft Corporation
Категория файла: Графические файлы

Программы, открывающие файлы Microsoft Picture It! Publishing Project :

Microsoft Picture It!, разработчик — Microsoft Corporation

Совместимый с:

Windows

Вариант 2 — Проверка информации о PHP с помощью создания файла phpinfo.php

Не волнуйтесь, если ваша хостинговая платформа не поддерживает функцию показанную в Варианте 1. Того же результата можно достичь создав специальный файл внутри вашего хостинг аккаунта. Файл также покажет всю информацию о вашем PHP и будет доступен через браузер.

Шаг 2.1 — Создание файла phpinfo

Существует несколько путей для создания файла phpinfo. В этом руководстве мы будем использовать для этого Файловый менеджер. Однако тот же результат может быть достигнут созданием файла на вашем локальном компьютере и дальнейшей загрузке файла на сервер через FTP-клиент.

Войдите в панель управления вашего хостинга и откройте Файловый менеджер. Нажмите кнопку Новый файл для создания нового файла.

В первом поле укажите путь где будет создан новый файл. Далее, в поле Новое имя файла введите phpinfo.php. В большинстве случаев вы можете оставить путь без изменений /public_html. В этом случае файл будет создан в корневом каталоге вашего сайта.

Шаг 2.2 — Редактирование файла

На этом этапе у вас уже имеется пустой файл phpinfo.php в каталоге public_html. Скопируйте следующий код в файл и нажмите иконку Сохранить в левом углу экрана.

<?php
 phpinfo();
 ?>

Вот и все, вы успешно создали PHP файл, который отобразит все параметры вашего PHP.  Как уже упоминалось ранее, тот же результат может быть достигнут с помощью FTP-клиента:

  1. Используйте любой текстовый редактор и создайте файл phpinfo.php на вашем компьютере.
  2. Добавьте следующий код в файл:
<?php
phpinfo();
?>
  1. Загрузите файл используя FTP в ваш каталог public_html.

Шаг 2.3 — Проверка информации о PHP через браузер

Если все было сделано правильно, то теперь вы можете получить доступ к созданному файлу, добавив в конец вашего доменного имени /phpinfo.php. К примеру, http://вашдомен.ru/phpinfo.php

Вы должны увидеть похожий результат при открытии этой страницы через браузер:

На этой странице вы сможете увидеть все настройки вашего PHP.

Создание таблицы результатов

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

В приведен дополнительный код, настраивающий строку заголовка для таблицы.

Листинг 6. Добавление заголовка таблицы результатов
<?php
define('FPDF_FONTPATH','/Library/WebServer/Documents/derby/font/');

require( 'fpdf.php' );
require( 'getresults.php' );

class PDF extends FPDF
{
function EventTable($event)
{
    $this->SetFont('','B','24');
    $this->Cell(40,10,$event,15);
    $this->Ln();

    $this->SetXY( 10, 45 );

    $this->SetFont('','B','10');
    $this->SetFillColor(128,128,128);
    $this->SetTextColor(255);
    $this->SetDrawColor(92,92,92);
    $this->SetLineWidth(.3);

    $this->Cell(70,7,"Team 1",1,0,'C',true);
    $this->Cell(20,7,"Score 1",1,0,'C',true);
    $this->Cell(70,7,"Team 2",1,0,'C',true);
    $this->Cell(20,7,"Score 2",1,0,'C',true);
    $this->Ln();
}
}

$pdf = new PDF();
$pdf->SetFont('Arial','',10);
foreach( getResults() as $event ) {
  $pdf->AddPage();
  $pdf->EventTable($event);  
}
$pdf->Output();
?>

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

Результат выполнения данного сценария в браузере показан на .

Рисунок 4. Страница со строкой заголовков столбцов таблицы

На заголовки отображаются в виде белого текста на сером фоне. Такой формат выделит их из данных, которые будут отображаться под заголовками. Для визуализации результатов соревнований добавьте код, приведенный в .

Листинг 7. Добавление заполненной таблицы результатов
<?php
define('FPDF_FONTPATH','/Library/WebServer/Documents/derby/font/');

require( 'fpdf.php' );
require( 'getresults.php' );

class PDF extends FPDF
{
function EventTable($event)
{
    $this->SetFont('','B','24');
    $this->Cell(40,10,$event,15);
    $this->Ln();

    $this->SetFont('','B','10');
    $this->SetFillColor(128,128,128);
    $this->SetTextColor(255);
    $this->SetDrawColor(92,92,92);
    $this->SetLineWidth(.3);

    $this->Cell(70,7,"Team 1",1,0,'C',true);
    $this->Cell(20,7,"Score 1",1,0,'C',true);
    $this->Cell(70,7,"Team 2",1,0,'C',true);
    $this->Cell(20,7,"Score 2",1,0,'C',true);
    $this->Ln();

    $this->SetFillColor(224,235,255);
    $this->SetTextColor(0);
    $this->SetFont('');

    $fill = false;

    foreach($event as $game)
    {
        $this->SetFont('Times',((int)$game>(int)$game)?'BI':'');
        $this->Cell(70,6,$game,'LR',0,'L',$fill);
        $this->Cell(20,6,$game,'LR',0,'R',$fill);
        $this->SetFont('Times',((int)$game<(int)$game)?'BI':'');
        $this->Cell(70,6,$game,'LR',0,'L',$fill);
        $this->Cell(20,6,$game,'LR',0,'R',$fill);
        $this->Ln();
        $fill =! $fill;
    }
    $this->Cell(180,0,'','T');
}
}

$pdf = new PDF();
$pdf->SetFont('Arial','',10);
foreach( getResults() as $event ) {
  $pdf->AddPage();
  $pdf->EventTable($event);  
}
$pdf->Output();
?>

В дополнение к выводу строки заголовков у нас есть цикл в методе , который выполняет итерирование по всем матчам. На показан код реализации.

Рисунок 5. PDF с таблицей результатов

Переменная чередует цвета фона строк таблицы. Названия и результаты выигравших команд отображаются жирным курсивом. Также отмечу, что шрифт меняется с Arial для заголовков на Times для содержимого матчей.

Чтобы завершить код примера, нужно добавить немного графики.


С этим читают