php-groups.com | Post Question | Search | About | Groups | Contact | Register | Login


New in This Group

truehearted Sale is about to end rollicker
7/25/2009 6:04:23 AM

Znoynye brazil'yanki hotyat
1/11/2009 4:20:08 PM

Request For PHP Tutorial Content
7/7/2008 4:55:09 AM

RE: MensHealth 12916
4/3/2008 4:10:45 AM

PHP manual in a PHP course
12/12/2007 5:51:44 PM

Ein Beispiel einstellen...
9/18/2007 1:33:02 PM

PHP Handbuch
8/19/2007 7:06:05 AM

docs partial copyleft
4/23/2007 4:18:23 PM

Release phpexplorator
2/6/2007 12:01:47 PM

PHP Manual 7
1/21/2007 11:40:10 PM

Ein Beispiel einstellen... Reply

Group: php.doc.license Subscribe Posted:9/18/2007 1:33:02 PM Replies:0 Views:14 Items(0)
Sehr geehrte Damen und Herren,

ich habe schon einmal versucht Sie wegen eines Eintrages anzufragen. Ich
schreibe auf meiner Site ein Manual und h�tte nun gerne eines Ihrer
Beispiele �bernommen (mit Verweis darauf).
Bei dem Beispiel handelt es sich um die Funktion set_error_handler,
�bernehmen wollte ich den Quelltext in etwas ver�nderter Form (mehr
deutsch).

F�r Ihre prompte Antwort bedanke ich mich bereits im Voraus und verbleibe

mit freundlichen Gr�ssen


Dies w�re der komplette Text, den ich einstellen m�chte:



--------------------------------------------------------------------------
Allgemeine Beschreibung:<br />&nbsp;<br />
set_error_handler() legt die benannte Funktion als aktuellen Fehlerhandler
fest. Die Funktion kann beliebig festgelegt werden, �blicherweise gibt sie
definierte Fehlermeldungen aus und bei einem kritischen Fehler sollten
zus�tzlich "Aufr�umarbeiten" durchgef�hrt werden. <br />
Die Funktion wird mit zwei Parametern aufgerufen: Dem Fehlercode und einem
String, der den Fehler beschreibt. Es k�nnen noch drei zus�tzliche Parameter
angegeben werden; der Name der Datei wo der Fehler auftrat, die Nummer der
Zeile in der genannten Datei wo der Fehler auftrat und den Kontext in
welchem der Fehler auftrat. Die Funktion gibt den Namen der
benutzerdefinierten Funktion aus, oder false wenn irgend ein Fehler beim
setzen des Handlers auftrat.
<br /> <br />
Anmerkung: Es kann auch ein Array anstatt einer Funktion definiert werden,
welches eine Referenz auf ein Objekt und einen Methodennamen enth�lt
�bergibt.
<br />
Die folgenden Typen k�nnen nicht von einer benutzerdefinierten Funktion
behandelt werden: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING,
E_COMPILE_ERROR UND E_COMPILE_WARNING.
<br /> <br />
Untenstehendes Beispiel wurde ausnahmsweise aus dem PHP-Handbuch des
"PHP-Manuals (Copyright � 1997 - 2005 by the PHP Documentation Group)
�bernommen. Leider haben wir auf unsere Ver�ffentlichungsanfrage keine
Reaktion erhalten -d.h. die Mail kam beim Empf�nger nicht an.



// umdefinieren der Konstanten - nur in PHP 4
define("FATAL", E_USER_ERROR);
define("ERROR", E_USER_WARNING);
define("WARNING", E_USER_NOTICE);

// die Stufe f�r dieses Skript einstellen
error_reporting(FATAL | ERROR | WARNING);


function myErrorHandler($errno, $errstr, $errfile, $errline)
{
switch ($errno) {
case FATAL:
echo "<b>FATALER ERROR</b> [$errno] $errstr<br />\n";
echo " Fataler Fehler in Linie $errline in der Datei $errfile";
echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
echo "abbrechen...<br />\n";
exit(1);
break;
case ERROR:
echo "<b>ERROR</b> [$errno] $errstr<br />\n";
break;
case WARNING:
echo "<b>WARNUNG</b> [$errno] $errstr<br />\n";
break;
default:
echo "Unbestimmter error Typ: [$errno] $errstr<br />\n";
break;
}
}

// Funktion zum Test der Fehlerbehandlung
function scale_by_log($vect, $scale)
{
if (!is_numeric($scale) || $scale <= 0) {
trigger_error("log(x) for x <= 0 ist undefiniert, benutze: scale =
$scale",
FATAL);
}

if (!is_array($vect)) {
trigger_error("Inkorrekte Eingabe vector, Feld mit Werten erwartet",
ERROR);
return null;
}

for ($i=0; $i<count($vect); $i++) {
if (!is_numeric($vect[$i]))
trigger_error("Wert an Position $i ist keine Nummer, verwendet 0
(zero)",
WARNING);
$temp[$i] = log($scale) * $vect[$i];
}
return $temp;
}

// auf die benutzerdefinierte Fehlerbehandlung umstellen
$old_error_handler = set_error_handler("myErrorHandler");

// einige Fehler ausl�sen, zuerst wird ein gemischtes Array
// definiert mit einem nichtnummerischen Eintrag
echo "vector a<br />";
$a = array(2, 3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// ein zweites Array erzeugen, das Warnungen generiert
echo "----<br />vector b - Warnung (b = log(PI) * a)<br />";
$b = scale_by_log($a, M_PI);
print_r($b);

// hier ist der Grund f�r das Problem: anstatt einem Array
// wird ein String �bergeben
echo "----<br />vector c - Fehler<br />";
$c = scale_by_log("not array", 2.3);
var_dump($c);

// dies ist ein kritischer Fehler, der log() ist f�r null
// oder negative Werte nicht definiert
echo "----<br />vector d - fataler Fehler<br />";
$d = scale_by_log($a, -2.5);
----------------------------------------------------------------------
horsel...@hispeed.ch ("horseland hispeed")
9/18/2007 1:33:02 PM




Hi,

ich sehe kein Problem damit, dass Sie das Beispiel aus dem deutschen=20
Manual (samt Verweis) =C3=BCbernehmen.

Bitte bedenken Sie, dass PHP ein internationales Projekt ist und um=20
Antworten zu erhalten, ist es am Besten Ihre Frage auf englisch zu=20
formulieren.

I don't see any problem taking over the example from our German=20
online-Manual (including the reference to our online manual)

For further questions, please, ask your questions in English. PHP is an=20
international project and most people don't speak German.

Sch=C3=B6ne Gr=C3=BC=C3=9Fe,
Kind regards,

Friedhelm Betz

horseland hispeed wrote:
> Sehr geehrte Damen und Herren,
>=20
> ich habe schon einmal versucht Sie wegen eines Eintrages anzufragen. Ic=
h=20
> schreibe auf meiner Site ein Manual und h=C3=A4tte nun gerne eines Ihre=
r=20
> Beispiele =C3=BCbernommen (mit Verweis darauf).
> Bei dem Beispiel handelt es sich um die Funktion set_error_handler,=20
> =C3=BCbernehmen wollte ich den Quelltext in etwas ver=C3=A4nderter Form=
(mehr=20
> deutsch).
>=20
> F=C3=BCr Ihre prompte Antwort bedanke ich mich bereits im Voraus und ve=
rbleibe
>=20
> mit freundlichen Gr=C3=BCssen
>=20
>=20
> Dies w=C3=A4re der komplette Text, den ich einstellen m=C3=B6chte:
>=20
>=20
>=20
> -----------------------------------------------------------------------=
---
> Allgemeine Beschreibung:<br />&nbsp;<br />
> set_error_handler() legt die benannte Funktion als aktuellen=20
> Fehlerhandler fest. Die Funktion kann beliebig festgelegt werden,=20
> =C3=BCblicherweise gibt sie definierte Fehlermeldungen aus und bei eine=
m=20
> kritischen Fehler sollten zus=C3=A4tzlich "Aufr=C3=A4umarbeiten" durchg=
ef=C3=BChrt=20
> werden. <br />
> Die Funktion wird mit zwei Parametern aufgerufen: Dem Fehlercode und=20
> einem String, der den Fehler beschreibt. Es k=C3=B6nnen noch drei zus=C3=
=A4tzliche=20
> Parameter angegeben werden; der Name der Datei wo der Fehler auftrat,=20
> die Nummer der Zeile in der genannten Datei wo der Fehler auftrat und=20
> den Kontext in welchem der Fehler auftrat. Die Funktion gibt den Namen =

> der benutzerdefinierten Funktion aus, oder false wenn irgend ein Fehler=
=20
> beim setzen des Handlers auftrat.
> <br /> <br />
> Anmerkung: Es kann auch ein Array anstatt einer Funktion definiert=20
> werden, welches eine Referenz auf ein Objekt und einen Methodennamen=20
> enth=C3=A4lt =C3=BCbergibt.
> <br />
> Die folgenden Typen k=C3=B6nnen nicht von einer benutzerdefinierten Fun=
ktion=20
> behandelt werden: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING,=20
> E_COMPILE_ERROR UND E_COMPILE_WARNING.
> <br /> <br />
> Untenstehendes Beispiel wurde ausnahmsweise aus dem PHP-Handbuch des=20
> "PHP-Manuals (Copyright =C2=A9 1997 - 2005 by the PHP Documentation Gro=
up)=20
> =C3=BCbernommen. Leider haben wir auf unsere Ver=C3=B6ffentlichungsanfr=
age keine=20
> Reaktion erhalten -d.h. die Mail kam beim Empf=C3=A4nger nicht an.

[...]


b...@php.net (Friedhelm Betz)
9/23/2007 2:11:30 PM


Reply:
| or Email(not shown): Name: | Register | Login

Alert me when someone responds to this posting.











Newest Articles

note 97095 added to soapclient.soapclient
4/1/2010 5:58:19 AM

note 97094 added to function.sqlite-changes
4/1/2010 5:06:46 AM

note 97093 added to function.sqlite-changes
4/1/2010 5:06:21 AM

note 97092 added to ref.xmlrpc
4/1/2010 4:52:18 AM

note 97091 added to function.var-export
4/1/2010 3:32:03 AM