Справочник по PHP

PHP имеет следующие типы ошибок


PHP имеет следующие типы ошибок и предупреждений:




Значение

Константа

Описание

1

E_ERROR

Фатальная ошибка времени исполнения.

2

E_WARNING

Предупреждение времени исполнения.

4

E_PARSE

Сообщение интерпретации времени исполнения.

8

E_NOTICE

Простое сообщение времени исполнения.

16

E_CORE_ERROR

Фатальная ошибка при инициализации PHP.

32

E_CORE_WARNING

Предупреждение инициализации.

64

E_COMPILE_ERROR

Фатальная ошибка компиляции.

128

E_COMPILE_WARNING

Предупреждение компиляции.

256

E_USER_ERROR

Ошибки, определяемые пользователем.

512

E_USER_WARNING

Предупреждения, определяемые пользователем.

1024

E_USER_NOTICE

Сообщения, определяемые пользователем.

2047

E_ALL

Все перечисленные сообщения.

Указанные значения в виде чисел или констант можно комбинировать, формируя битовую маску ошибок, о которых необходимо сообщать в ходе исполнения сценария. Для комбинирования используются битовые операторы, но в конфигурационном файле php.ini распознаются только "|", "~", "!" и "&".

В PHP 4 по умолчанию разрешены сообщения вида E_ALL & ~E_NOTICE, то есть сообщаться должно все, кроме обычных сообщений. Можно переопределить эту установку параметром файла конфигурации error_reporting() (ее также можно указывать в файлах конфигурации сервера Apache).

Если при вызове функции перед ее именем указать символ "@", то в случае возникновения ошибки в этой функции сообщение о нем выдаваться не будет.

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

Если разрешен параметр конфигурации track_errors, то сообщение об ошибке сохраняется в глобальной переменной $php_errormsg.
<?// определенный пользователем обработчик ошибокfunction userErrorHandler($errno,$errmsg,$filename,$linenum,$vars) {  // время возникновения ошибки  $dt=date("Y-m-d H:i:s (T)");  $errortype = array(    1    => "Error",    2    => "Warning",    4    => "Parsing Error",    8    => "Notice",    16   => "Core Error",    32   => "Core Warning",    64   => "Compile Error",    128  => "Compile Warning",    256  => "User Error",    512  => "User Warning",    1024 => "User Notice"    );  $err.="время ($dt), номер ошибки ($errno), ";  $err.="тип ошибки (".$errortype[$errno]."): ";  $err.="\"$errmsg\".файл \"$filename\", строка (";  $err.=$linenum.")\n";   $user_errors=array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);  if(in_array($errno, $user_errors))  // выдать сообщение для ошибок пользователя  echo $err;   // сохранить событие ошибки в системном журнале  error_log($err, 3, "/usr/local/php4/error.log");} // установить уровень контроля ошибок и обработчикerror_reporting(0); // не выводить сообщения PHP$old_error_handler=set_error_handler("userErrorHAndler"); // неопределенная константа вызывает предупреждение$t=_NOT_DEFINED_CONSTANT; trigger_error("Моя ошибка", E_USER_ERROR);trigger_error("Мое предупреждение", E_USER_WARNING); ?>


Данная группа функций позволяет управлять тем, как PHP при выполнении сценария выводит информацию. Это может быть полезно в различных ситуациях, в особенности при посылке браузеру HTML-заголовков (headers) после того, как сценарий начал выводить HTML-текст. (В обычном случае невозможно послать заголовок после того, как был начат вывод текста.)

Эти функции не воздействуют на заголовки, посланные функциями header() или setcookie(), а только на функции, подобные echo() и HTML-тексту между блоками PHP-кода.
<?php ob_start();echo "Hello\n" setcookie("cookiename", "cookiedata"); ob_end_flush(); ?>
В примере выше вывод командой echo() будет сохранен в буфере вывода до вызова функции ob_end_flush(). В то же время вызов setcookie() успешно сохраняет cookie, не вызывая ошибки.


PDF-функции позволяют PHP создавать PDF-файлы с помощью библиотеки PDF, созданной Томасом Мерзем (http://www.pdflib.com/pdflib/index.html); также могут потребоваться библиотеки JPEG (ftp://ftp.uu.net/graphics/jpeg/) и TIFF (http://www.libtiff.org/).

С pdflib поставляется хорошая документация, описывающая возможности библиотеки. Имена функций и аргументы идентичны в библиотеке и PHP. Размеры и координаты измеряются в единицах Postscript (72 на дюйм), но это зависит от выбранного разрешения.

Аналогом библиотеки является ClibPDF.

Версии ниже 3.0 pdflib не поддерживается в PHP 4.
<?php$fp = fopen("test.pdf". "w");$pdf = pdf_open($fp);pdf_set_info($pdf, "Author", "Uwe Streinmann");pdf_set_info($pdf, "Title", "Test for PHP PDFlib");pdf_set_info($pdf, "Creator", "See Author");pdf_set_info($pdf, "Subject", "Testing");pdf_begin_page($pdf, 595, 842);pdf_add_outline($pdf, "Page 1");pdf_set_font("$pdf, "Times-Roman", 30, "host");pdf_set_value($pdf, "textrendering", 1);pdf_show_xy($pdf, "Times Roman outlined", 50, 750);pdf_moveto($pdf, 50, 740);pdf_lineto($pdf, 330, 740);pdf_stroke($pdf);pdf_end_page($pdf);pdf_close($pdf);fclose($fp);echo "<A href=getpdf.php>finished</A>";?><?php// Сценарий getpdf.php просто возвращает документ pdf$fp = fopen("test.pdf", "r");header("Content-type: application/pdf");fpassthru($fp);fclose($fp);?>


Данная серия статей посвящена созданию документов Excel при помощи PHP. Данная возможнось может понадобиться, например, если нужно предоставить пользователю загружаемые данные в виде листов Excel. Это могут быть прайсы на продукцию, автоматически генерируемые из базы данных на сервере, либо какие-то документы, которые также необходимо представить в виде документов Excel.
Здесь рассматривается возможность работы с Excel-документами через COM-объект. К сожалению работа с COM-объектами в PHP возможна только на Windows-платформах. По-этому если Вы используете Unix-хостинг, то создавать и редактировать Excel-документы приведенным ниже способом не получится.
Работа с COM-объектами производится при помощи синтактсиса
$com_object = new COM($object);
где
  •   $com_object - новый COM-объект;

  •   $object
    - id-класс требуемого объекта.

  • Для создания Excel-документов переменной $object необходимо задать значение "Excel.Application" либо "Excel.sheet".
    $xsl = new COM("Excel.Application");
    После создания нового COM-объекта, можно обращаться к его свойствам и методам:
    <?php$xls = new COM("Excel.Application"); // Создаем новый COM-объект$xls->Application->Visible = 1;      // Заставляем его отобразиться$xls->Workbooks->Add();              // Добавляем новый документ $rangeValue = $xls->Range("A1");$rangeValue->Value = "В выделенном блоке текст будет жирный, подчеркнутый, наклонный";$rangeValue = $xls->Range("A2");$rangeValue->Value = "Шрифт будет иметь высоту 12";$rangeValue = $xls->Range("A3");$rangeValue->Value = "Имя шрифта - Times New Roman"; $range=$xls->Range("A1:J10");               // Определяем область ячеек$range->Select();                           // Выделяем ее$fontRange=$xls->Selection();               // Присваиваем переменной выделенную область // Далее задаем параметры форматирования текста в выделенной области$fontRange->Font->Bold = true;              // Жирный$fontRange->Font->Italic = true;            // Курсив$fontRange->Font->Underline = true;         // Подчеркнутый$fontRange->Font->Name = "Times New Roman"; // Имя шрифта$fontRange->Font->Size = 12;                // Размер шрифта ?>
    Далее в этом разделе я приведу примеры работы с основными наиболее исползуемыми свойствами и методами:
    •   Открытие, запись, закрытие документа

    •   Формат ячеек: Выравнивание

    •   Формат ячеек: Шрифт

    •   Работа со строками

    •   Работа с колонками

    •   Добавление / Удаление / Переименование листов

    •   Рисование таблиц

    •   Копирование / вставка ячеек


    • Содержание раздела