hw_EditText(PHP 3>= 3.0.3, PHP 4) hw_EditText - запрашивает текстовый документ. Описаниеint hw_edittext (int connection, int hw_document) Загружает текстовый документ на сервер. Запись объекта этого документа не может модифицироваться, пока документ редактируется. Эта функция работает только с чисто текстовыми документами. Она не открывает специальное соединение с данными и, следовательно, блокирует управление соединением в процессе трансфера. См. также hw_pipedocument(), hw_free_document(), hw_document_bodytag(), hw_document_size(), hw_output_document(), hw_gettext(). |
||||||||||
|
||||||||||
<?php
// делаем нашу собственную обработку ошибок error_reporting(0); // пользовательская
функция обработки ошибок function userErrorHandler ($errno, $errmsg, $filename,
$linenum, $vars) { // штамп времени для вхождения ошибки $dt = date("Y-m-d H:i:s
(T)"); // определяем ассоциативный массив строки ошибки; // в реальности мы должны
рассматривать только // 2,8,256,512 и 1024 $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" ); // установить ошибки, для которых vartrace будет сохраняться $user_errors
= array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE); $err = "<errorentry>\n";
$err .= "\t<datetime>".$dt."</datetime>\n"; $err .= "\t<errornum>".$errno."</errornum>\n";
$err .= "\t<errortype>".$errortype[$errno]."</errortype>\n"; $err
.= "\t<errormsg>".$errmsg."</errormsg>\n"; $err .= "\t<scriptname>".$filename."</scriptname>\n";
$err .= "\t<scriptlinenum>".$linenum."</scriptlinenum>\n"; if
(in_array($errno, $user_errors)) $err .= "\t<vartrace>".wddx_serialize_value($vars,"Variables")."</vartrace>\n";
$err .= "</errorentry>\n\n"; // для тестирования // echo $err; // сохранить
в error log и e-mail, если имеется критическая пользовательская ошибка error_log($err,
3, "/usr/local/php4/error.log"); if ($errno == E_USER_ERROR) mail("phpdev@example.com","Critical
User Error",$err); } function distance ($vect1, $vect2) { if (!is_array($vect1)
|| !is_array($vect2)) { trigger_error("Incorrect parameters, arrays expected",
E_USER_ERROR); return NULL; } if (count($vect1) != count($vect2)) { trigger_error("Vectors
need to be of the same size", E_USER_ERROR); return NULL; } for ($i=0; $i<count($vect1);
$i++) { $c1 = $vect1[$i]; $c2 = $vect2[$i]; $d = 0.0; if (!is_numeric($c1)) {
trigger_error("Coordinate $i in vector 1 is not a number, using zero", E_USER_WARNING);
$c1 = 0.0; } if (!is_numeric($c2)) { trigger_error("Coordinate $i in vector 2
is not a number, using zero", E_USER_WARNING); $c2 = 0.0; } $d += $c2*$c2 - $c1*$c1;
} return sqrt($d); } $old_error_handler = set_error_handler("userErrorHandler");
// неопределённая константа, генерируется предупреждение $t = I_AM_NOT_DEFINED;
// определяем некоторые "векторы" $a = array(2,3,"foo"); $b = array(5.5, 4.3,
-1.6); $c = array (1,-3); // генерируется пользовательская ошибка $t1 = distance($c,$b)."\n";
// генерируется ещё одна пользовательская ошибка $t2 = distance($b,"i am not an
array")."\n"; // генерируется предупреждение $t3 = distance($a,$b)."\n"; ?>
|
| |