PHP

������������ � ��������� ������

��������

Rambler's Top100
PHP ����� ��������� ���� ������ � ��������������:
�������������������������
1E_ERROR��������� ������ ������� ����������.
2E_WARNING�������������� ������� ����������.
4E_PARSE��������� ������������� ������� ����������.
8E_NOTICE������� ��������� ������� ����������.
16E_CORE_ERROR��������� ������ ��� ������������� PHP.
32E_CORE_WARNING�������������� �������������.
64E_COMPILE_ERROR��������� ������ ����������.
128E_COMPILE_WARNING�������������� ����������.
256E_USER_ERROR������, ������������ �������������.
512E_USER_WARNING��������������, ������������ �������������.
1024E_USER_NOTICE���������, ������������ �������������.
2047E_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 4. ����������� ����������."
www.piter.com
��������� � ����� "���������� Web-������": www.spravkaweb.ru.

Rambler's Top100