adu             Mon Apr  1 05:44:44 2002 EDT

  Modified files:              
    /phpdoc/ro/functions        errorfunc.xml 
  Log:
  Reformated PHP code examples according to
  http://cvs.php.net/co.php/phpdoc/RFC/coding_standards?r=1.3
  and replaced tabs with spaces.
  
Index: phpdoc/ro/functions/errorfunc.xml
diff -u phpdoc/ro/functions/errorfunc.xml:1.1 phpdoc/ro/functions/errorfunc.xml:1.2
--- phpdoc/ro/functions/errorfunc.xml:1.1       Tue Mar  5 05:00:51 2002
+++ phpdoc/ro/functions/errorfunc.xml   Mon Apr  1 05:44:44 2002
@@ -1,572 +1,578 @@
-<?xml version="1.0" encoding="iso-8859-2"?>
-<!-- $Revision: 1.1 $ -->
- <reference id="ref.errorfunc">
-  <title>Erori - gestiune �i �nregistrare</title>
-  <titleabbrev>Erorile �i �nregistrarea</titleabbrev>
-
-  <partintro>
-   <para>
-    Aceste func�ii se ocup� cu tratarea �i �nregistrarea erorilor. Ele permit 
definirea
-       propriilor reguli pentru tratarea erorilor, precum �i modificarea modului �n 
care
-       erorile pot fi �nregistrate. Ve�i putea adapta �i �mbun�t��i modul �n care 
erorile sunt
-       raportate �i �nregistrate, pentru satisfacerea propriilor nevoi.
-   </para>
-   <para> 
-    Cu func�iile de �nregistrare pute�i trimite mesaje la alte ma�ini, la o adresa de 
email
-       (sau la un sistem email pe pager!), la sisteme jurnal etc. �n acest fel, pute�i
-       �nregistra �i monitoriza cele mai importante p�r�i ale aplica�iilor �i ale 
paginilor web.
-   </para>
-   <para> 
-    Func�iile pentru raportarea erorilor v� permit personalizarea nivelului �i a 
tipului de
-       erori raportate, plec�nd de la simple notific�ri �i p�n� la func�ii 
personalizate.
-   </para>
-  </partintro>
-
-  <refentry id="function.error-log">
-   <refnamediv>
-    <refname>error_log</refname>
-    <refpurpose>Trimite un mesaj de eroare c�tre o destina�ie</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Descriere</title>
-     <methodsynopsis>
-      <type>int</type><methodname>error_log</methodname>
-      <methodparam><type>string</type><parameter>message</parameter></methodparam>
-      <methodparam 
choice="opt"><type>int</type><parameter>message_type</parameter></methodparam>
-      <methodparam 
choice="opt"><type>string</type><parameter>destination</parameter></methodparam>
-      <methodparam 
choice="opt"><type>string</type><parameter>extra_headers</parameter></methodparam>
-     </methodsynopsis>
-    <para>
-     Trimite un mesaj de eroare c�tre jurnalul de erori al serverului web, c�tre un 
port
-     <acronym>TCP</acronym> sau c�tre un fi�ier. Primul parametru,
-     <parameter>message</parameter>, este mesajul de eroare care trebuie �nregistrat.
-        Cel de-al doilea parametru, <parameter>message_type</parameter>, spune unde 
trebuie
-        s� fie trimis mesajul:
-     <table>
-      <title>Tipuri de �nregistr�ri <function>error_log</function></title>
-      <tgroup cols="2">
-       <tbody>
-    <row>
-     <entry>0</entry>
-     <entry>
-      <parameter>message</parameter> este trimis la sistemul de �nregistrare al PHP, 
folosind
-         mecanismul de �nregistrare al sistemului de operare sau un fi�ier, �n 
func�ie de cum este
-         setat� directiva de configurare <link 
linkend="ini.error-log">error_log</link>.
-     </entry>
-    </row>
-    <row>
-     <entry>1</entry>
-     <entry>
-      <parameter>message</parameter> va fi trimis c�tre adresa de email setat� de 
c�tre parametrul
-         <parameter>destination</parameter>. Acesta este singurul tip de �nregistrare 
unde este
-         folosit cel de-al patrulea parametru, <parameter>extra_headers</parameter>. 
Acest tip de
-         mesaj folose�te aceea�i func�ie intern� ca �i <function>mail</function>.
-     </entry>
-    </row>
-    <row>
-     <entry>2</entry>
-     <entry>
-      <parameter>message</parameter> este trimis c�tre conexiunea de depanare PHP. 
Aceast�
-         op�iune este disponibil� doar dac� directiva
-         <link linkend="install.configure.enable-debugger">remote_debugging</link> a 
fost activat�.
-         �n acest caz, parametrul <parameter>destination</parameter> specific� numele 
gazdei sau
-         adresa IP, op�ional num�rul portului, pentru socket-ul de recep�ionare al 
informa�iilor
-         de depanare.
-     </entry>
-    </row>
-    <row>
-     <entry>3</entry>
-     <entry>
-      <parameter>message</parameter>  este ad�ugat la fi�ierul
-      <parameter>destination</parameter>.
-     </entry>
-    </row>
-       </tbody>
-      </tgroup>
-     </table>
-    </para>
-    <warning>
-     <para>
-      Depanarea distant� via TCP/IP este o facilitate disponibil� �n PHP 3 �i
-         <emphasis>nu</emphasis> este disponibil� �n PHP 4.
-     </para>
-    </warning>
-    <para>
-     <example role="php">
-      <title>Exemple <function>error_log</function></title>
-      <programlisting role="php">
-<![CDATA[
-// se trimite o notificare prin serverul de �nregistrare
-// dac� nu se poate conecta la baza de date
-if (!Ora_Logon ($username, $password)) {
-    error_log ("Baza de date Oracle nu este disponibila!", 0);
-}
-
-// notific� administratorul prin email
-if (!($foo = allocate_new_foo()) {
-    error_log ("A ap�rut o problema, nu s-a alocat memorie pentru FOO!", 1,
-               "[EMAIL PROTECTED]");
-}
-
-// alte modalit��i de apelare error_log():
-error_log ("Ai dat-o-n bar�!", 2, "127.0.0.1:7000");
-error_log ("Ai dat-o-n bar�!", 2, "loghost");
-error_log ("Ai dat-o-n bar�!", 3, "/var/tmp/my-errors.log");
-]]>
-      </programlisting>
-     </example>
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.error-reporting">
-   <refnamediv>
-    <refname>error_reporting</refname>
-    <refpurpose>Seteaz� care erori PHP sunt raportate</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Descriere</title>
-     <methodsynopsis>
-      <type>int</type><methodname>error_reporting</methodname>
-      <methodparam 
choice="opt"><type>int</type><parameter>level</parameter></methodparam>
-     </methodsynopsis>
-    <para>
-     Seteaz� nivelul de raportare a erorilor PHP �i returneaz� nivelul anterior. 
Nivelul de
-        raportare poate fi o masc� de bi�i sau numele unei constante. Folosirea 
numelor de
-        constante este �ncurajat� �n mod deosebit pentru a asigura compatibilitatea 
cu versiunile
-        urm�toare. Pe m�sur� ce au fost ad�ugate nivele de eroare, rangul numerelor 
�ntregi a
-        crescut, a�a c� vechile nivele de eroare bazate pe valori �ntregi nu vor avea 
totdeauna
-        comportamentul a�teptat.
-    </para>
-    <para>
-     <example role="php">
-      <title>Schimb�ri ale valorilor �ntregi</title>
-      <programlisting role="php">
-<![CDATA[
-error_reporting (55);   // echivalent �n PHP 3 cu E_ALL ^ E_NOTICE
-
-/* ...�n PHP 4, '55' va �nsemna (E_ERROR | E_WARNING | E_PARSE |
-E_CORE_ERROR | E_CORE_WARNING) */
-
-error_reporting (2039); // echivalent �n PHP 4 cu E_ALL ^ E_NOTICE
-
-error_reporting (E_ALL ^ E_NOTICE); // Identic �n PHP 3 �i 4
-]]>
-      </programlisting>
-     </example>
-     Urma�i leg�turile constantelor pentru a afla ce reprezint�:
-     <table>
-      <title>Valori bit pentru <function>error_reporting</function></title>
-      <tgroup cols="2">
-       <thead>
-        <row>
-         <entry>valoare</entry>
-         <entry>constant�</entry>
-        </row>
-       </thead>
-       <tbody>
-        <row>
-         <entry>1</entry>
-         <entry>
-          <link linkend="internal.e-error">E_ERROR</link>
-         </entry>
-        </row>
-        <row>
-         <entry>2</entry>
-         <entry>
-          <link linkend="internal.e-warning">E_WARNING</link>
-         </entry>
-        </row>
-        <row>
-         <entry>4</entry>
-         <entry>
-          <link linkend="internal.e-parse">E_PARSE</link>
-         </entry>
-        </row>
-        <row>
-         <entry>8</entry>
-         <entry>
-          <link linkend="internal.e-notice">E_NOTICE</link>
-         </entry>
-        </row>
-        <row>
-         <entry>16</entry>
-         <entry>
-          <link linkend="internal.e-core-error">E_CORE_ERROR</link>
-         </entry>
-        </row>
-        <row>
-         <entry>32</entry>
-         <entry>
-          <link linkend="internal.e-core-warning">E_CORE_WARNING</link>
-         </entry>
-        </row>
-        <row>
-         <entry>64</entry>
-         <entry>
-          <link linkend="internal.e-compile-error">E_COMPILE_ERROR</link>
-         </entry>
-        </row>
-        <row>
-         <entry>128</entry>
-         <entry>
-          <link linkend="internal.e-compile-warning">E_COMPILE_WARNING</link>
-         </entry>
-        </row>
-        <row>
-         <entry>256</entry>
-         <entry>
-          <link linkend="internal.e-user-error">E_USER_ERROR</link>
-         </entry>
-        </row>
-        <row>
-         <entry>512</entry>
-         <entry>
-          <link linkend="internal.e-user-warning">E_USER_WARNING</link>
-         </entry>
-        </row>
-        <row>
-         <entry>1024</entry>
-         <entry>
-          <link linkend="internal.e-user-error">E_USER_NOTICE</link>
-         </entry>
-        </row>
-       </tbody>
-      </tgroup>
-     </table>
-    </para>
-    <para>
-     <example role="php">
-      <title>Exemple <function>error_reporting</function></title>
-      <programlisting role="php">
-<![CDATA[
-error_reporting(0);
-/* Opre�te orice raportare */
-
-/* Exemplele sunt prezentate mai �nt�i �n sintaxa veche (pentru PHP 2/3)
- * apoi �n sintaxa nou� (cea recomandat�, pentru PHP 3/4)
- */
-
-error_reporting (7);
-error_reporting (E_ERROR | E_WARNING | E_PARSE);
-/* bine de folosit pentru erori simple de rulare */
-
-error_reporting  (15);
-error_reporting (E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
-/* bine de folosit pentru raportarea variabilelor neini�ializate (posibil scrise 
gre�it) */
-
-error_reporting (63);
-error_reporting (E_ALL);
-/* raporteaz� toate erorile PHP */
-]]>
-      </programlisting>
-     </example>
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.restore-error-handler">
-   <refnamediv>
-    <refname>restore_error_handler</refname>
-    <refpurpose>
-     Restaureaz� func�ia anterioar� de tratare a erorilor
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Descriere</title>
-     <methodsynopsis>
-      <type>void</type><methodname>restore_error_handler</methodname>
-      <void/>
-     </methodsynopsis>
-    <para>
-     Se folose�te dup� schimbarea func�iei de tratare a erorilor prin apelarea 
func�iei
-     <function>set_error_handler</function>, pentru a reveni la func�ia anterioar� de 
tratare a erorilor (care poate fi nativ� sau definit� de utilizator).
-    </para>
-    <para>
-     Mai consulta�i <function>error_reporting</function>,
-     <function>set_error_handler</function>,
-     <function>trigger_error</function>, <function>user_error</function>
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.set-error-handler">
-   <refnamediv>
-    <refname>set_error_handler</refname>
-    <refpurpose>
-     Seteaz� o func�ie de tratare a erorilor definit� de utilizator
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Descriere</title>
-     <methodsynopsis>
-      <type>string</type><methodname>set_error_handler</methodname>
-      
<methodparam><type>string</type><parameter>error_handler</parameter></methodparam>
-     </methodsynopsis>
-    <para>
-     Seteaz� o func�ie utilizator (<parameter>error_handler</parameter>) pentru 
gestionarea
-     erorilor �ntr-un script. Returneaz� func�ia anterioar� de gestiune (dac� exist�),
-        sau &false; �n cazul unei erori. Aceast� func�ie v� permite definirea 
propriului mod
-        de tratare a erorilor la execu�ie, de exemplu �n aplica�ii �n care
-        este nevoie de refacerea unor date/fi�iere c�nd apare o eroare critic�,
-     sau este necesar� declan�area unei erori dac� sunt �ndeplinite anumite condi�ii
-        (folosind <function>trigger_error</function>).
-    </para>
-    <para>
-        Func�ia definit� de utilizator trebuie s� accepte doi parametri: codul de 
eroare
-        �i un �ir de caractere care descrie eroarea. �ncep�nd cu versiunea PHP 4.0.2 
sunt
-        accepta�i �nc� trei parametri op�ionali: numele fi�ierului �n care a ap�rut 
eroarea,
-        num�rul liniei la care s-a produs aceast� eroare �i contextul �n care ea a 
ap�rut
-        (un tablou care indic� tabela de simboluri activ� �n punctul �n care a ap�rut 
eroarea).
-    </para>
-    <para>
-        Mai jos este exemplificat� tratarea unei excep�ii interne prin declan�area 
erorilor
-        �i tratarea lor cu o func�ie definit� de utilizator:
-    </para>
-    <para>
-     <example>
-      <title>
-       Tratarea erorilor cu ajutorul func�iilor 
<function>set_error_handler</function> �i
-       <function>trigger_error</function>
-      </title>
-      <programlisting role="php">
-<![CDATA[
-<?php
-
-// redefinirea constantelor de eroare - doar �n PHP 4
-define ('FATAL',   E_USER_ERROR);
-define ('ERROR',   E_USER_WARNING);
-define ('WARNING', E_USER_NOTICE);
-
-// setarea nivelului de raportare a erorilor pentru acest script
-error_reporting (FATAL | ERROR | WARNING);
-
-// func�ia de tratare a erorilor
-function myErrorHandler ($errlevel, $errstr, $errfile, $errline) {
-  switch ($errlevel) {
-  case FATAL:
-    echo "<b>FATAL</b> [$errlevel] $errstr<br>\n";
-    echo "  Eroare fatala la linia ".$errline." in fisierul ".$errfile;
-    echo ", PHP ".PHP_VERSION." (".PHP_OS.")<br>\n";
-    echo "Abandon...<br>\n";
-    exit(1);
-    break;
-  case ERROR:
-    echo "<b>ERROR</b> [$errlevel] $errstr<br>\n";
-    break;
-  case WARNING:
-    echo "<b>WARNING</b> [$errlevel] $errstr<br>\n";
-    break;
-    default:
-    echo "Eroare de tip necunoscut: [$errlevel] $errstr<br>\n";
-    break;
-  }
-}
-
-// func�ie pentru testarea trat�rii erorilor
-function scale_by_log ($vect, $scale) {
-  if (!is_numeric($scale) || $scale <= 0)
-    trigger_error("log(x) pentru x <= 0 nu este definita, ati folosit: scale = 
$scale",
-      FATAL);
-  if (!is_array($vect)) {
-    trigger_error("Tablou de intrare incorect, trebuia un tablou de valori", ERROR);
-    return null;
-  }
-  for ($i = 0; $i < count($vect); $i++) {
-    if (!is_numeric($vect[$i]))
-      trigger_error("Valoarea de la pozitia $i nu este un numar, se va folosi 0 
(zero)", 
-        WARNING);
-    $temp[$i] = log($scale) * $vect[$i];
-  }
-  return $temp;
-}
-
-// setarea gestionarului de erori definit de utilizator
-$old_error_handler = set_error_handler("myErrorHandler");
-
-// se define�te un tablou cu un element non-numeric
-// �i se declan�eaz� eroare
-echo "tablou a<pre>\n";
-$a = array(2, 3, "foo", 5.5, 43.3, 21.11);
-print_r($a);
-echo "</pre>";
-
-// se genereaz� al doilea tablou �i se declan�eaz� o avertizare
-echo "----<br>\ntablou b - o atentionare (b = log(PI) * a)\n<pre>";
-$b = scale_by_log($a, M_PI);
-print_r($b);
-echo "</pre>";
-
-// se transmite un �ir de caractere �n loc de un tablou
-echo "----<br>\ntablou c - eroare\n<pre>";
-$c = scale_by_log("nu este tablou", 2.3);
-var_dump($c);
-echo "</pre>\n";
-
-// o eroare critica: nu este definit log() pentru zero sau numere negative
-echo "----<br>\ntablou d - eroare fatala\n";
-$d = scale_by_log($a, -2.5);
-
-?>
-]]>
-      </programlisting>
-     </example>
-     Rularea script-ului va produce:
-     <informalexample>
-      <programlisting>
-<![CDATA[
-tablou a
-Array
-(
-    [0] => 2
-    [1] => 3
-    [2] => foo
-    [3] => 5.5
-    [4] => 43.3
-    [5] => 21.11
-)
-
-----
-tablou b - o atentionare (b = log(PI) * a) 
-WARNING [1024] Valoarea de la pozitia 2 nu este un numar, se va folosi 0 (zero)
-Array
-(
-    [0] => 2.2894597716988
-    [1] => 3.4341896575482
-    [2] => 0
-    [3] => 6.2960143721717
-    [4] => 49.566804057279
-    [5] => 24.165247890281
-)
-
-----
-tablou c - eroare 
-ERROR [512] Tablou de intrare incorect, trebuia un tablou de valori
-NULL
-
-----
-tablou d - eroare fatala FATAL [256] log(x) pentru x <= 0 nu este definita, ati 
folosit: scale = -2.5
-Eroare fatala la linia 37 in fisierul /softure/htdocs/test.php, PHP 4.0.6 (Linux)
-Abandon...
-1
-]]>
-      </programlisting>
-     </informalexample>
-    </para>
-    <para>
-     Este important de re�inut c� gestionarul standard PHP al erorilor va fi ignorat
-        complet. Set�rile efectuate de <function>error_reporting</function> nu vor 
mai avea
-        nici un efect �i va fi apelat� doar func�ia definit� de utilizator. Se poate 
citi �n
-        continuare valoarea curent� setat� de <function>error_reporting</function> 
pentru folosire
-        adecvat�. Trebuie f�cut� men�iunea c� aceast� valoare va fi zero dac� 
instruc�iunea
-        care a generat eroarea este precedat� de
-        <link linkend="language.operators.errorcontrol">operatorul @</link> de 
control a erorilor.
-    </para>
-    <para>
-     De asemenea, trebuie precizat c� este responsabilitatea programatorului s� 
apeleze func�ia
-        <function>die</function> dac� este necesar. Dac� func�ia de tratare a erorii 
nu �ntrerupe
-        explicit execu�ia, scriptul va continua cu instruc�iunea urm�toare celei care 
a generat eroarea.
-    </para>
-    <para>
-     Mai consulta�i <function>error_reporting</function>,
-     <function>restore_error_handler</function>,
-     <function>trigger_error</function>, <function>user_error</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.trigger-error">
-   <refnamediv>
-    <refname>trigger_error</refname>
-    <refpurpose>
-     Genereaz� o eroare/avertisment/notificare la nivelul utilizatorului
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Descriere</title>
-     <methodsynopsis>
-      <type>void</type><methodname>trigger_error</methodname>
-      <methodparam><type>string</type><parameter>error_msg</parameter></methodparam>
-      <methodparam 
choice="opt"><type>int</type><parameter>error_type</parameter></methodparam>
-     </methodsynopsis>
-    <para>
-     Se folose�te pentru a declan�a o eroare condi�ionat� de utilizator. Se poate 
folosi
-        �n conjunc�ie cu gestionarul nativ al erorilor sau cu o func�ie definit� de 
utilizator
-        (<function>set_error_handler</function>). Func�ioneaz� doar cu familia de 
constante
-     E_USER, valoarea implicit� pentru <parameter>error_type</parameter> fiind 
<constant>E_USER_NOTICE</constant>.
-    </para>
-    <para>
-         Aceast� func�ie este util� atunci c�nd se dore�te generarea unui r�spuns 
anume
-         pentru o excep�ie ap�rut� �n timpul rul�rii. De exemplu:
-     <informalexample>
-      <programlisting>
-<![CDATA[
-if (assert ($divisor == 0))
-   trigger_error ("�mp�r�irea la zero nu este permis�", E_USER_ERROR);
-]]>
-      </programlisting>
-     </informalexample>
-     <note>
-     <para>
-     Consulta�i <function>set_error_handler</function> pentru un exemplu mai detaliat.
-     </para>
-     </note>
-    </para>
-    <para>
-     Mai consulta�i <function>error_reporting</function>,
-     <function>set_error_handler</function>,
-     <function>restore_error_handler</function>, 
-     <function>user_error</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.user-error">
-   <refnamediv>
-    <refname>user_error</refname>
-    <refpurpose>
-     Genereaz� o eroare/avertisment/notificare la nivelul utilizatorului
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Descriere</title>
-     <methodsynopsis>
-      <type>void</type><methodname>user_error</methodname>
-      <methodparam><type>string</type><parameter>error_msg</parameter></methodparam>
-      <methodparam 
choice="opt"><type>int</type><parameter>error_type</parameter></methodparam>
-     </methodsynopsis>
-    <para>
-     Acesta este un alias pentru func�ia <function>trigger_error</function>.
-    </para>
-    <para>
-     Mai consulta�i <function>error_reporting</function>,
-     <function>set_error_handler</function>,
-     <function>restore_error_handler</function>,
-     <function>trigger_error</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
- </reference>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-indent-tabs-mode:nil
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
--->
-
+<?xml version="1.0" encoding="iso-8859-2"?>
+<!-- $Revision: 1.2 $ -->
+ <reference id="ref.errorfunc">
+  <title>Erori - gestiune �i �nregistrare</title>
+  <titleabbrev>Erorile �i �nregistrarea</titleabbrev>
+
+  <partintro>
+   <para>
+    Aceste func�ii se ocup� cu tratarea �i �nregistrarea erorilor. Ele permit 
+definirea
+    propriilor reguli pentru tratarea erorilor, precum �i modificarea modului �n care
+    erorile pot fi �nregistrate. Ve�i putea adapta �i �mbun�t��i modul �n care 
+erorile sunt
+    raportate �i �nregistrate, pentru satisfacerea propriilor nevoi.
+   </para>
+   <para> 
+    Cu func�iile de �nregistrare pute�i trimite mesaje la alte ma�ini, la o adresa de 
+email
+    (sau la un sistem email pe pager!), la sisteme jurnal etc. �n acest fel, pute�i
+    �nregistra �i monitoriza cele mai importante p�r�i ale aplica�iilor �i ale 
+paginilor web.
+   </para>
+   <para> 
+    Func�iile pentru raportarea erorilor v� permit personalizarea nivelului �i a 
+tipului de
+    erori raportate, plec�nd de la simple notific�ri �i p�n� la func�ii personalizate.
+   </para>
+  </partintro>
+
+  <refentry id="function.error-log">
+   <refnamediv>
+    <refname>error_log</refname>
+    <refpurpose>Trimite un mesaj de eroare c�tre o destina�ie</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descriere</title>
+     <methodsynopsis>
+      <type>int</type><methodname>error_log</methodname>
+      <methodparam><type>string</type><parameter>message</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>int</type><parameter>message_type</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>string</type><parameter>destination</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>string</type><parameter>extra_headers</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     Trimite un mesaj de eroare c�tre jurnalul de erori al serverului web, c�tre un 
+port
+     <acronym>TCP</acronym> sau c�tre un fi�ier. Primul parametru,
+     <parameter>message</parameter>, este mesajul de eroare care trebuie �nregistrat.
+     Cel de-al doilea parametru, <parameter>message_type</parameter>, spune unde 
+trebuie
+     s� fie trimis mesajul:
+     <table>
+      <title>Tipuri de �nregistr�ri <function>error_log</function></title>
+      <tgroup cols="2">
+       <tbody>
+    <row>
+     <entry>0</entry>
+     <entry>
+      <parameter>message</parameter> este trimis la sistemul de �nregistrare al PHP, 
+folosind
+      mecanismul de �nregistrare al sistemului de operare sau un fi�ier, �n func�ie 
+de cum este
+      setat� directiva de configurare <link linkend="ini.error-log">error_log</link>.
+     </entry>
+    </row>
+    <row>
+     <entry>1</entry>
+     <entry>
+      <parameter>message</parameter> va fi trimis c�tre adresa de email setat� de 
+c�tre parametrul
+      <parameter>destination</parameter>. Acesta este singurul tip de �nregistrare 
+unde este
+      folosit cel de-al patrulea parametru, <parameter>extra_headers</parameter>. 
+Acest tip de
+      mesaj folose�te aceea�i func�ie intern� ca �i <function>mail</function>.
+     </entry>
+    </row>
+    <row>
+     <entry>2</entry>
+     <entry>
+      <parameter>message</parameter> este trimis c�tre conexiunea de depanare PHP. 
+Aceast�
+      op�iune este disponibil� doar dac� directiva
+      <link linkend="install.configure.enable-debugger">remote_debugging</link> a 
+fost activat�.
+      �n acest caz, parametrul <parameter>destination</parameter> specific� numele 
+gazdei sau
+      adresa IP, op�ional num�rul portului, pentru socket-ul de recep�ionare al 
+informa�iilor
+      de depanare.
+     </entry>
+    </row>
+    <row>
+     <entry>3</entry>
+     <entry>
+      <parameter>message</parameter>  este ad�ugat la fi�ierul
+      <parameter>destination</parameter>.
+     </entry>
+    </row>
+       </tbody>
+      </tgroup>
+     </table>
+    </para>
+    <warning>
+     <para>
+      Depanarea distant� via TCP/IP este o facilitate disponibil� �n PHP 3 �i
+      <emphasis>nu</emphasis> este disponibil� �n PHP 4.
+     </para>
+    </warning>
+    <para>
+     <example role="php">
+      <title>Exemple <function>error_log</function></title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+// se trimite o notificare prin serverul de �nregistrare
+// dac� nu se poate conecta la baza de date
+if (!Ora_Logon ($username, $password)) {
+    error_log ('Baza de date Oracle nu este disponibila!', 0);
+}
+
+// notific� administratorul prin email
+if (!($foo = allocate_new_foo()) {
+    error_log('A ap�rut o problem�, nu s-a alocat memorie pentru FOO!', 1,
+              '[EMAIL PROTECTED]');
+}
+
+// alte modalit��i de apelare error_log():
+error_log('Ai dat-o-n bar�!', 2, '127.0.0.1:7000');
+error_log('Ai dat-o-n bar�!', 2, 'loghost');
+error_log('Ai dat-o-n bar�!', 3, '/var/tmp/my-errors.log');
+?>
+]]>
+      </programlisting>
+     </example>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.error-reporting">
+   <refnamediv>
+    <refname>error_reporting</refname>
+    <refpurpose>Seteaz� care erori PHP sunt raportate</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descriere</title>
+     <methodsynopsis>
+      <type>int</type><methodname>error_reporting</methodname>
+      <methodparam 
+choice="opt"><type>int</type><parameter>level</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     Seteaz� nivelul de raportare a erorilor PHP �i returneaz� nivelul anterior. 
+Nivelul de
+     raportare poate fi o masc� de bi�i sau numele unei constante. Folosirea numelor 
+de
+     constante este �ncurajat� �n mod deosebit pentru a asigura compatibilitatea cu 
+versiunile
+     urm�toare. Pe m�sur� ce au fost ad�ugate nivele de eroare, rangul numerelor 
+�ntregi a
+     crescut, a�a c� vechile nivele de eroare bazate pe valori �ntregi nu vor avea 
+totdeauna
+     comportamentul a�teptat.
+    </para>
+    <para>
+     <example role="php">
+      <title>Schimb�ri ale valorilor �ntregi</title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+error_reporting(55);   // echivalent �n PHP 3 cu E_ALL ^ E_NOTICE
+
+// ...�n PHP 4, '55' va �nsemna (E_ERROR | E_WARNING | E_PARSE |
+// E_CORE_ERROR | E_CORE_WARNING)
+
+error_reporting(2039); // echivalent �n PHP 4 cu E_ALL ^ E_NOTICE
+
+error_reporting(E_ALL ^ E_NOTICE); // Identic �n PHP 3 �i 4
+?>
+]]>
+      </programlisting>
+     </example>
+     Urma�i leg�turile constantelor pentru a afla ce reprezint�:
+     <table>
+      <title>Valori bit pentru <function>error_reporting</function></title>
+      <tgroup cols="2">
+       <thead>
+        <row>
+         <entry>valoare</entry>
+         <entry>constant�</entry>
+        </row>
+       </thead>
+       <tbody>
+        <row>
+         <entry>1</entry>
+         <entry>
+          <link linkend="internal.e-error">E_ERROR</link>
+         </entry>
+        </row>
+        <row>
+         <entry>2</entry>
+         <entry>
+          <link linkend="internal.e-warning">E_WARNING</link>
+         </entry>
+        </row>
+        <row>
+         <entry>4</entry>
+         <entry>
+          <link linkend="internal.e-parse">E_PARSE</link>
+         </entry>
+        </row>
+        <row>
+         <entry>8</entry>
+         <entry>
+          <link linkend="internal.e-notice">E_NOTICE</link>
+         </entry>
+        </row>
+        <row>
+         <entry>16</entry>
+         <entry>
+          <link linkend="internal.e-core-error">E_CORE_ERROR</link>
+         </entry>
+        </row>
+        <row>
+         <entry>32</entry>
+         <entry>
+          <link linkend="internal.e-core-warning">E_CORE_WARNING</link>
+         </entry>
+        </row>
+        <row>
+         <entry>64</entry>
+         <entry>
+          <link linkend="internal.e-compile-error">E_COMPILE_ERROR</link>
+         </entry>
+        </row>
+        <row>
+         <entry>128</entry>
+         <entry>
+          <link linkend="internal.e-compile-warning">E_COMPILE_WARNING</link>
+         </entry>
+        </row>
+        <row>
+         <entry>256</entry>
+         <entry>
+          <link linkend="internal.e-user-error">E_USER_ERROR</link>
+         </entry>
+        </row>
+        <row>
+         <entry>512</entry>
+         <entry>
+          <link linkend="internal.e-user-warning">E_USER_WARNING</link>
+         </entry>
+        </row>
+        <row>
+         <entry>1024</entry>
+         <entry>
+          <link linkend="internal.e-user-error">E_USER_NOTICE</link>
+         </entry>
+        </row>
+       </tbody>
+      </tgroup>
+     </table>
+    </para>
+    <para>
+     <example role="php">
+      <title>Exemple <function>error_reporting</function></title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+error_reporting(0);
+// Opre�te orice raportare
+
+// Exemplele sunt prezentate mai �nt�i �n sintaxa veche (pentru PHP 2/3)
+// apoi �n sintaxa nou� (cea recomandat�, pentru PHP 3/4)
+
+error_reporting(7);
+error_reporting(E_ERROR | E_WARNING | E_PARSE);
+// bine de folosit pentru erori simple de rulare
+
+error_reporting(15);
+error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
+// bine de folosit pentru raportarea variabilelor neini�ializate
+// (posibil scrise gre�it)
+
+error_reporting(63);
+error_reporting(E_ALL);
+// raporteaz� toate erorile PHP
+?>
+]]>
+      </programlisting>
+     </example>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.restore-error-handler">
+   <refnamediv>
+    <refname>restore_error_handler</refname>
+    <refpurpose>
+     Restaureaz� func�ia anterioar� de tratare a erorilor
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descriere</title>
+     <methodsynopsis>
+      <type>void</type><methodname>restore_error_handler</methodname>
+      <void/>
+     </methodsynopsis>
+    <para>
+     Se folose�te dup� schimbarea func�iei de tratare a erorilor prin apelarea 
+func�iei
+     <function>set_error_handler</function>, pentru a reveni la func�ia anterioar� de 
+tratare a erorilor (care poate fi nativ� sau definit� de utilizator).
+    </para>
+    <para>
+     Mai consulta�i <function>error_reporting</function>,
+     <function>set_error_handler</function>,
+     <function>trigger_error</function>, <function>user_error</function>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.set-error-handler">
+   <refnamediv>
+    <refname>set_error_handler</refname>
+    <refpurpose>
+     Seteaz� o func�ie de tratare a erorilor definit� de utilizator
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descriere</title>
+     <methodsynopsis>
+      <type>string</type><methodname>set_error_handler</methodname>
+      
+<methodparam><type>string</type><parameter>error_handler</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     Seteaz� o func�ie utilizator (<parameter>error_handler</parameter>) pentru 
+gestionarea
+     erorilor �ntr-un script. Returneaz� func�ia anterioar� de gestiune (dac� exist�),
+     sau &false; �n cazul unei erori. Aceast� func�ie v� permite definirea propriului 
+mod
+     de tratare a erorilor la execu�ie, de exemplu �n aplica�ii �n care
+     este nevoie de refacerea unor date/fi�iere c�nd apare o eroare critic�,
+     sau este necesar� declan�area unei erori dac� sunt �ndeplinite anumite condi�ii
+     (folosind <function>trigger_error</function>).
+    </para>
+    <para>
+     Func�ia definit� de utilizator trebuie s� accepte doi parametri: codul de eroare
+     �i un �ir de caractere care descrie eroarea. �ncep�nd cu versiunea PHP 4.0.2 sunt
+     accepta�i �nc� trei parametri op�ionali: numele fi�ierului �n care a ap�rut 
+eroarea,
+     num�rul liniei la care s-a produs aceast� eroare �i contextul �n care ea a ap�rut
+     (un tablou care indic� tabela de simboluri activ� �n punctul �n care a ap�rut 
+eroarea).
+    </para>
+    <para>
+     Mai jos este exemplificat� tratarea unei excep�ii interne prin declan�area 
+erorilor
+     �i tratarea lor cu o func�ie definit� de utilizator:
+    </para>
+    <para>
+     <example>
+      <title>
+       Tratarea erorilor cu ajutorul func�iilor 
+<function>set_error_handler</function> �i
+       <function>trigger_error</function>
+      </title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+// redefinirea constantelor de eroare - doar �n PHP 4
+define ('FATAL',   E_USER_ERROR);
+define ('ERROR',   E_USER_WARNING);
+define ('WARNING', E_USER_NOTICE);
+
+// setarea nivelului de raportare a erorilor pentru acest script
+error_reporting(FATAL | ERROR | WARNING);
+
+// func�ia de tratare a erorilor
+function myErrorHandler ($errlevel, $errstr, $errfile, $errline)
+{
+    switch ($errlevel) {
+    case FATAL:
+        echo "<b>FATAL</b> [$errlevel] $errstr<br>\n" .
+            "  Eroare fatala la linia $errline in fisierul $errfile,"
+            "  PHP " . PHP_VERSION . " (" . PHP_OS . ")<br>\n";
+            "Abandon...<br>\n";
+        exit(1);
+        break;
+    case ERROR:
+        echo "<b>ERROR</b> [$errlevel] $errstr<br>\n";
+        break;
+    case WARNING:
+        echo "<b>WARNING</b> [$errlevel] $errstr<br>\n";
+        break;
+    default:
+        echo "Eroare de tip necunoscut: [$errlevel] $errstr<br>\n";
+        break;
+    }
+}
+
+// func�ie pentru testarea trat�rii erorilor
+function scale_by_log ($vect, $scale)
+{
+    if (!is_numeric($scale) || $scale <= 0) {
+        trigger_error("log(x) pentru x <= 0 nu este definita, ati folosit: scale = 
+$scale", FATAL);
+    }
+    if (!is_array($vect)) {
+        trigger_error("Tablou de intrare incorect, trebuia un tablou de valori", 
+ERROR);
+        return null;
+    }
+    for ($i = 0; $i < count($vect); $i++) {
+        if (!is_numeric($vect[$i])) {
+            trigger_error("Valoarea de la pozitia $i nu este un numar, se va folosi 0 
+(zero)", WARNING);
+        }
+        $temp[$i] = log($scale) * $vect[$i];
+    }
+    return $temp;
+}
+
+// setarea gestionarului de erori definit de utilizator
+$old_error_handler = set_error_handler("myErrorHandler");
+
+// se define�te un tablou cu un element non-numeric
+// �i se declan�eaz� eroare
+echo "tablou a<pre>\n";
+$a = array(2, 3, "foo", 5.5, 43.3, 21.11);
+print_r($a);
+echo "</pre>";
+
+// se genereaz� al doilea tablou �i se declan�eaz� o avertizare
+echo "----<br>\ntablou b - o atentionare (b = log(PI) * a)\n<pre>";
+$b = scale_by_log($a, M_PI);
+print_r($b);
+echo "</pre>";
+
+// se transmite un �ir de caractere �n loc de un tablou
+echo "----<br>\ntablou c - eroare\n<pre>";
+$c = scale_by_log("nu este tablou", 2.3);
+var_dump($c);
+echo "</pre>\n";
+
+// o eroare critica: nu este definit log() pentru zero sau numere negative
+echo "----<br>\ntablou d - eroare fatala\n";
+$d = scale_by_log($a, -2.5);
+?>
+]]>
+      </programlisting>
+     </example>
+     Rularea script-ului va produce:
+     <informalexample>
+      <programlisting>
+<![CDATA[
+tablou a
+Array
+(
+    [0] => 2
+    [1] => 3
+    [2] => foo
+    [3] => 5.5
+    [4] => 43.3
+    [5] => 21.11
+)
+
+----
+tablou b - o atentionare (b = log(PI) * a) 
+WARNING [1024] Valoarea de la pozitia 2 nu este un numar, se va folosi 0 (zero)
+Array
+(
+    [0] => 2.2894597716988
+    [1] => 3.4341896575482
+    [2] => 0
+    [3] => 6.2960143721717
+    [4] => 49.566804057279
+    [5] => 24.165247890281
+)
+
+----
+tablou c - eroare 
+ERROR [512] Tablou de intrare incorect, trebuia un tablou de valori
+NULL
+
+----
+tablou d - eroare fatala FATAL [256] log(x) pentru x <= 0 nu este definita, ati 
+folosit: scale = -2.5
+Eroare fatala la linia 37 in fisierul /softure/htdocs/test.php, PHP 4.0.6 (Linux)
+Abandon...
+1
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+    <para>
+     Este important de re�inut c� gestionarul standard PHP al erorilor va fi ignorat
+     complet. Set�rile efectuate de <function>error_reporting</function> nu vor mai 
+avea
+     nici un efect �i va fi apelat� doar func�ia definit� de utilizator. Se poate 
+citi �n
+     continuare valoarea curent� setat� de <function>error_reporting</function> 
+pentru folosire
+     adecvat�. Trebuie f�cut� men�iunea c� aceast� valoare va fi zero dac� 
+instruc�iunea
+     care a generat eroarea este precedat� de
+     <link linkend="language.operators.errorcontrol">operatorul @</link> de control a 
+erorilor.
+    </para>
+    <para>
+     De asemenea, trebuie precizat c� este responsabilitatea programatorului s� 
+apeleze func�ia
+     <function>die</function> dac� este necesar. Dac� func�ia de tratare a erorii nu 
+�ntrerupe
+     explicit execu�ia, scriptul va continua cu instruc�iunea urm�toare celei care a 
+generat eroarea.
+    </para>
+    <para>
+     Mai consulta�i <function>error_reporting</function>,
+     <function>restore_error_handler</function>,
+     <function>trigger_error</function>, <function>user_error</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.trigger-error">
+   <refnamediv>
+    <refname>trigger_error</refname>
+    <refpurpose>
+     Genereaz� o eroare/avertisment/notificare la nivelul utilizatorului
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descriere</title>
+     <methodsynopsis>
+      <type>void</type><methodname>trigger_error</methodname>
+      <methodparam><type>string</type><parameter>error_msg</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>int</type><parameter>error_type</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     Se folose�te pentru a declan�a o eroare condi�ionat� de utilizator. Se poate 
+folosi
+     �n conjunc�ie cu gestionarul nativ al erorilor sau cu o func�ie definit� de 
+utilizator
+     (<function>set_error_handler</function>). Func�ioneaz� doar cu familia de 
+constante
+     E_USER, valoarea implicit� pentru <parameter>error_type</parameter> fiind 
+<constant>E_USER_NOTICE</constant>.
+    </para>
+    <para>
+      Aceast� func�ie este util� atunci c�nd se dore�te generarea unui r�spuns anume
+      pentru o excep�ie ap�rut� �n timpul rul�rii. De exemplu:
+     <informalexample>
+      <programlisting>
+<![CDATA[
+if (assert ($divisor == 0))
+   trigger_error ("�mp�r�irea la zero nu este permis�", E_USER_ERROR);
+]]>
+      </programlisting>
+     </informalexample>
+     <note>
+     <para>
+     Consulta�i <function>set_error_handler</function> pentru un exemplu mai detaliat.
+     </para>
+     </note>
+    </para>
+    <para>
+     Mai consulta�i <function>error_reporting</function>,
+     <function>set_error_handler</function>,
+     <function>restore_error_handler</function>, 
+     <function>user_error</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.user-error">
+   <refnamediv>
+    <refname>user_error</refname>
+    <refpurpose>
+     Genereaz� o eroare/avertisment/notificare la nivelul utilizatorului
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descriere</title>
+     <methodsynopsis>
+      <type>void</type><methodname>user_error</methodname>
+      <methodparam><type>string</type><parameter>error_msg</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>int</type><parameter>error_type</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     Acesta este un alias pentru func�ia <function>trigger_error</function>.
+    </para>
+    <para>
+     Mai consulta�i <function>error_reporting</function>,
+     <function>set_error_handler</function>,
+     <function>restore_error_handler</function>,
+     <function>trigger_error</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+ </reference>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->
+


Reply via email to