cortesi         Thu Jan 31 08:17:11 2002 EDT

  Modified files:              
    /phpdoc/it/functions        regex.xml 
  Log:
  Adding translation by Darvin Andrioli
  
  
Index: phpdoc/it/functions/regex.xml
diff -u /dev/null phpdoc/it/functions/regex.xml:1.7
--- /dev/null   Thu Jan 31 08:17:11 2002
+++ phpdoc/it/functions/regex.xml       Thu Jan 31 08:17:10 2002
@@ -0,0 +1,571 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- EN-Revision: 1.37 Maintainer: darvin  Status: ready -->
+ <reference id="ref.regex">
+  <title>Funzioni per le espressioni regolari (POSIX estesa)</title>
+  <titleabbrev>Regexp</titleabbrev>
+
+  <partintro>
+   <note>
+    <para>
+     Il PHP, utilizzando le <link linkend="ref.pcre">funzioni PCRE</link>,
+     supporta anche le espressioni regolari con una sintassi compatibile con Perl.
+     Queste funzioni supportano riconoscimenti "pigliatutto", asserzioni, criteri 
+condizionali,
+     e diverse altre caratteristiche che non sono supportate dalla sintassi POSIX 
+estesa. 
+    </para>
+   </note>
+   <warning>
+    <para>
+     Queste funzioni per l'espressioni regolari non sono binary-safe. Le <link
+      linkend="ref.pcre">funzioni PCRE</link> lo sono.
+    </para>
+   </warning>
+   <para>
+    In PHP, le espressioni regolari sono utilizzate per complesse 
+    manipolazioni di stringhe. Le funzioni che supportano le espressioni 
+    regolari sono:
+    <itemizedlist>
+     <listitem>
+      <simpara><function>ereg</function></simpara>
+     </listitem>
+     <listitem>
+      <simpara><function>ereg_replace</function></simpara>
+     </listitem>
+     <listitem>
+      <simpara><function>eregi</function></simpara>
+     </listitem>
+     <listitem>
+      <simpara><function>eregi_replace</function></simpara>
+     </listitem>
+     <listitem>
+      <simpara><function>split</function></simpara>
+     </listitem>
+     <listitem>
+      <simpara><function>spliti</function></simpara>
+     </listitem>
+    </itemizedlist>
+    Tutte queste funzioni usano una espressione regolare come loro
+    primo argomento. Le espressioni regolari utilizzate da PHP sono di tipo
+    POSIX esteso così come definito in POSIX 1003.2. Per una descrizione
+    completa delle espressione regolari POSIX, vedere la pagina del
+    manuale di regex inclusa nella directory di regex nella distribuzione 
+    di PHP. Questa è in formato man, pertanto per poterle leggere occorre
+    eseguire <command>man /usr/local/src/regex/regex.7</command>.
+   </para>
+   <para>
+    <example>
+     <title>Esempi di espressione regolare</title>
+     <programlisting role="php">
+<![CDATA[
+ereg ("abc", $string);            
+/* Restituisce vero se "abc"
+   viene trovata ovunque in $string. */
+
+ereg ("^abc", $string);
+/* Restituisce vero se "abc"
+   viene trovata all'inizio di $string. */
+
+ereg ("abc$", $string);
+/* Restituisce vero se "abc"
+   viene trovata alla fine di $string. */
+
+eregi ("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);  
+/* Restituisce vero se il browser
+   è Netscape 2, 3 oppure MSIE 3. */
+
+ereg ("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string,$regs); 
+/* Posizione tre parole separate da spazio
+   in $regs[1], $regs[2] e $regs[3]. */
+
+$string = ereg_replace ("^", "<br />", $string); 
+/* Posiziona il tag <br /> all'inizio di $string. */
+ 
+$string = ereg_replace ("$", "<br />", $string);
+/* Posiziona il tag <br /> alla fine di $string. */ 
+
+$string = ereg_replace ("\n", "", $string);
+/* Toglie ogni carattere di invio
+   da $string. */
+]]>
+     </programlisting>
+    </example>
+   </para>
+  </partintro>
+
+  <refentry id="function.ereg">
+   <refnamediv>
+    <refname>ereg</refname>
+    <refpurpose>Riconoscimento di espressione regolare</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>int <function>ereg</function></funcdef>
+      <paramdef>string <parameter>epressione_regolare</parameter></paramdef>
+      <paramdef>string <parameter>stringa</parameter></paramdef>
+      <paramdef>array 
+       <parameter><optional>regs</optional></parameter>
+      </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <note>
+     <para>
+      Poichè utilizza espressioni regolari con sintassi compatibile 
+      con PERL, <function>preg_match</function>, è spesso una alternativa
+      più veloce a <function>ereg</function>.
+     </para>
+    </note>
+    <simpara>
+     Ricerca in <parameter>stringa</parameter> testi che possano incrociarsi
+     con l'espressione regolare indicata in 
+<parameter>espressione_regolare</parameter>.
+    </simpara>
+    <simpara>
+     Se le parti di testo poste tra parentesi nel campo 
+     <parameter>espressione_regolare</parameter> sono incontrate nella 
+     <parameter>stringa</parameter> e la funzione viene chiamata utilizzando
+     il terzo parametro <parameter>regs</parameter>, il testo riconosciuto
+     sarà memorizzato nella matrice <parameter>regs</parameter>.
+     L'indice 1, $regs[1], conterrà la sottostringa che parte dalla prima
+     parentesi sinistra; $regs[2] conterrà la sottostringa a partire dalla
+     seconda e così via. L'indice 0, $regs[0], conterrà la copia completa
+     della stringa riconosciuta.
+    </simpara> 
+               <note>
+                <simpara>
+                        Fino alla versione di PHP 4.1.0 compresa, 
+<literal>$regs</literal>
+                        conterrà esattamente 10 elementi, anche se il numero delle 
+stringhe
+                        riconosciute sia maggiore o minore di 10. Ciò non limita
+                        <function>ereg</function> nella ricerca di più sottostringhe.
+                        Se non si riconoscono testi, <literal>$regs</literal> non
+                        sarà modificato da <function>ereg</function>. 
+                </simpara>
+               </note>    
+               <simpara>
+     La ricerca è sensibile alle lettere maiuscole e minuscole.
+    </simpara>
+    <simpara>
+     La funzione ritorna &true; se le ricerche previste da 
+     <parameter>espressione_regolare</parameter> sono riscontrate in 
+     <parameter>stringa</parameter>. Viene restituito &false; se non
+     si hanno riscontri, oppure si verificano degli errori.
+    </simpara>
+    <para>
+     Nel seguente frammento di codice, una data in formato
+     ISO (YYYY-MM-DD) verrà visualizzata nel formato DD.MM.YYYY:
+     <example>
+      <title><function>ereg</function> Esempio</title>
+      <programlisting role="php">
+<![CDATA[
+if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $data, $regs)) {
+    echo "$regs[3].$regs[2].$regs[1]";
+} else {
+    echo "Formato di data non valido: $data";
+}
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <simpara>
+     Vedere anche <function>eregi</function>,
+     <function>ereg_replace</function>,
+     <function>eregi_replace</function> e
+     <function>preg_match</function>.
+    </simpara>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.ereg-replace">
+   <refnamediv>
+    <refname>ereg_replace</refname>
+    <refpurpose>Sostituzioni con espressioni regolari</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>string <function>ereg_replace</function></funcdef>
+      <paramdef>string <parameter>espressione_regolare</parameter></paramdef>
+      <paramdef>string <parameter>testo_sostitutivo</parameter></paramdef>
+      <paramdef>string <parameter>stringa</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <note>
+     <para>
+      Poichè utilizza espressioni regolari con sintassi compatibile 
+      con Perl, <function>preg_replace</function>, è spesso una alternativa
+      più veloce a <function>ereg_replace</function>.
+     </para>
+    </note>
+    <simpara>
+     La funzione ricerca all'interno del parametro <parameter>stringa</parameter>
+     sottostringhe che incrocino con le condizioni specificate in <parameter>
+     espressione_regolare</parameter>. Quando sono trovate, queste vengono sostituite
+     con il testo specificato in <parameter>testo_sostitutivo</parameter>.
+    </simpara>
+    <simpara>
+     La funzione restituisce la stringa modificata. (Ciò implica
+     che se non ci sono sottostringhe che soddisfino l' espressione
+     regolare, la funzione restituisce la stringa originaria).
+    </simpara>
+    <simpara>
+     Se in <parameter>espressione_regolare</parameter> si specificano
+     delle sottostringhe utilizzando le parentesi, anche nel campo
+     <parameter>testo_sostitutivo</parameter> si possono specificare delle
+     sottostringhe di formato <literal>\\<replaceable>digit</replaceable>
+     </literal>, che saranno sostituite dalle stringhe soddisfacenti
+     la digit'esima condizione posta tra parentesi; <literal>\\0</literal>
+     indica l'intera stringa. La funzione prevede che si possano utlizzare
+     fino a nove sottostringhe. E' previsto che le parentesi siano 
+     nidificate, in questo caso il conteggio si basa sulle parentesi aperte.
+    </simpara>  
+    <simpara>
+     Se nessuna parte di <parameter>stringa</parameter> viene riconosciuta,
+     il parametro viene restituito invariato.
+    </simpara>
+    <para>
+     Come esempio il seguente frammento di codice visualizzerà la frase
+     "Questo fu un test" tre volte:
+     <example>
+      <title><function>ereg_replace</function> Esempio</title>
+      <programlisting>
+<![CDATA[
+$stringa = "Questo è un test";
+echo ereg_replace (" è", " fu", $string);
+echo ereg_replace ("( )è", "\\1fu", $string);
+echo ereg_replace ("(( )è)", "\\2fu", $string);
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <para>
+     Un aspetto a cui occorre prestare attenzione riguarda l'uso di 
+     numero intero per il parametro <parameter>testo_sostitutivo</parameter>,
+     si potrebbero ottenere risultati diversi da quanto atteso.
+     Questo accade perchè la funzione <function>ereg_replace</function> 
+     interpreta il numero come posizione ordinale di un carattere 
+     comportandosi di conseguenza. Ad esempio:
+     <example>
+      <title><function>ereg_replace</function> Esempio</title>
+      <programlisting>
+<![CDATA[
+<?php
+/* Questo non si comporta come atteso. */
+$num = 4;
+$stringa = "Questa stringa ha quattro parole.";
+$stringa = ereg_replace('quattro', $num, $stringa);
+echo $stringa;   /* Risultato: 'Questa stringa ha   parole.' */
+
+/* Questo funziona. */
+$num = '4';
+$stringa = "Questa stringa ha quattro parole.";
+$stringa = ereg_replace('quattro', $num, $stringa);
+echo $stringa;   /* Risultato: 'Questa stringa ha 4 parole' */
+?>
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <para>
+     <example>
+      <title>Sostituzione di URLs</title>
+      <programlisting role="php">
+<![CDATA[
+$testo = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
+                     "<a href=\"\\0\">\\0</a>", $testo);
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <simpara>
+     Vedere anche <function>ereg</function>, <function>eregi</function>,
+     <function>eregi_replace</function>, <function>str_replace</function>, e 
+<function>preg_match</function>.
+    </simpara>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.eregi">
+   <refnamediv>
+    <refname>eregi</refname>
+    <refpurpose>Riconoscimento di espressioni regolari senza distinzione tra 
+maiuscole e minuscole</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>int <function>eregi</function></funcdef>
+      <paramdef>string <parameter>espressione_regolare</parameter></paramdef>
+      <paramdef>string <parameter>stringa</parameter></paramdef>
+      <paramdef>array 
+       <parameter><optional>regs</optional></parameter>
+      </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Questa funzione è identica a <function>ereg</function>, tranne 
+     che per il fatto che non distingue tra lettere maiuscole e lettere
+     minuscole.
+     <example>
+      <title><function>eregi</function> esempio</title>
+      <programlisting role="php">
+<![CDATA[
+if (eregi("z", $stringa)) {
+    echo "'$stringa' contiene una 'z' oppure una 'Z'!";
+}
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <para>
+     Vedere anche <function>ereg</function>,
+     <function>ereg_replace</function>, e
+     <function>eregi_replace</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.eregi-replace">
+   <refnamediv>
+    <refname>eregi_replace</refname>
+    <refpurpose>Sostituzioni con espressioni regolari senza distinzione tra maiuscole 
+e minuscole</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>string <function>eregi_replace</function></funcdef>
+      <paramdef>string <parameter>espressione_regolare</parameter></paramdef>
+      <paramdef>string <parameter>testo_sostitutivo</parameter></paramdef>
+      <paramdef>string <parameter>stringa</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Questa funzione è identica a <function>ereg_replace</function>, tranne 
+     che per il fatto che non distingue tra lettere maiuscole e lettere
+     minuscole.
+    </para>
+    <para>
+     Vedere anche <function>ereg</function>, <function>eregi</function>
+     e <function>ereg_replace</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+  <refentry id="function.split">
+   <refnamediv>
+    <refname>split</refname>
+    <refpurpose>Suddivide una stringa in una matrice utilizzando le espressioni 
+regolari</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>array <function>split</function></funcdef>
+      <paramdef>string <parameter>espressione_regolare</parameter></paramdef>
+      <paramdef>string <parameter>stringa</parameter></paramdef>
+      <paramdef>int 
+       <parameter><optional>limite</optional></parameter>
+      </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <note>
+     <para>
+      Poichè utilizza espressioni regolari con sintassi compatibile 
+      con Perl, <function>preg_split</function>, è spesso una alternativa
+      più veloce a <function>split</function>.
+     </para>
+    </note>
+    <para>
+     La funzione restituisce una matrice di stringhe che sono delle
+     sottostringhe del parametro <parameter>stringa</parameter>. Queste
+     sono ottenute suddividendo il parametro secondo i limiti indicati
+     dal parametro <parameter>espressione_regolare</parameter>. Se viene
+     specificato il parametro <parameter>limite</parameter>, la funzione 
+     restituisce una matrice con un numero di elementi al massimo pari 
+     a <parameter>limite</parameter>. L'ultimo elemento della matrice contiene
+     la parte restante del parametro <parameter>stringa</parameter> fornito.
+     Se si verificano errori la funzione <function>split</function> 
+     restituisce &false;.
+    </para>
+    <para>
+     Esempio di come estrapolare i primi 4 campi da una linea del file
+     <filename>/etc/passwd</filename>:
+     <example>
+      <title><function>split</function> Esempio</title>
+      <programlisting role="php">
+<![CDATA[
+list($user,$pass,$uid,$gid,$extra)= split (":", $passwd_line, 5);
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <tip>
+     <simpara>
+      Se nella stringa passata vi sono <replaceable>n</replaceable> occorrenze
+      del parametro <parameter>espressione_regolare</parameter>, la matrice restituita
+      conterrà <literal><replaceable>n</replaceable>+1</literal> elementi.
+      Invece, nel caso in cui non vi siano occorrenze della 
+      <parameter>espressione_regolare</parameter>, la matrice restituita conterrà
+      un solo elemento. Ovviamente questo è valido anche nel caso in cui il 
+      parametro <parameter>stringa</parameter> è vuoto.
+     </simpara>
+    </tip>
+    <para>
+     Nell'esempio che segue, si vedrà come analizzare una data il cui testo 
+     può contenere barre, punti o trattini:
+     <example>
+      <title><function>split</function> Esempio</title>
+      <programlisting role="php">
+<![CDATA[
+$data = "04/30/1973";  // Delimitatori di testo: barre, punti, trattini
+list ($mese, $giorno, $anno) = split ('[/.-]', $data);
+echo "Mese: $mese; Giorno: $giorno; Anno: $anno<br>\n";
+]]>
+      </programlisting>
+     </example>
+    </para>
+
+    <para>
+     Fare attenzione al fatto che <parameter>espressione_regolare</parameter> è 
+distingue
+     tra lettere maiuscole e minuscole.
+    </para>
+
+    <para>
+     Nota: se non è richiesta la potenza delle espressioni regolari,
+     è più veloce la funzione <function>explode</function>, la quale
+     non richiede l'uso del motore delle espressioni regolari.
+    </para>
+
+    <para>
+     Gli utenti che cercano un modo di emulare il comportamento di
+     Perl <command>$chars = split('', $str)</command>, sono rimandati 
+     agli esempi di  <function>preg_split</function>.
+    </para>
+
+    <para>
+     Occorre fare attenzione al fatto che il parametro <parameter>
+     espressione_regolare</parameter> è una espressione regolare e,
+     pertanto, se si devono riconoscere caratteri che sono considerati 
+     speciali per le espressioni regolari, occorre codificarli con i
+     caratteri di escape. Se si ritiene che la funzione <function>split
+     </function> ( o anche le altre funzioni derivate da regex ) si
+     comportino in modo anomalo, è opportuno leggere il file
+     <filename>regex.7</filename>, incluso nella cartella <filename>
+     regex/</filename> della distribuzione di PHP. Questo file è
+     nel formato del manuale di unix (man), pertanto per visualizzarlo
+     occorre eseguire il comando <command>man 
+      /usr/local/src/regex/regex.7</command>.
+    </para>
+
+    <para>
+     Vedere anche: 
+     <function>preg_split</function>,
+      <function>spliti</function>,
+     <function>explode</function>, 
+     <function>implode</function>,
+     <function>chunk_split</function> e 
+     <function>wordwrap</function>.
+    </para>
+
+   </refsect1>
+  </refentry>
+  
+  <refentry id="function.spliti">
+   <refnamediv>
+    <refname>spliti</refname>
+    <refpurpose>
+     Suddivide una stringa in una matrice usando le espressioni regolari senza 
+distinguere tra
+     maiuscole e minuscole
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>array <function>spliti</function></funcdef>
+      <paramdef>string <parameter>espressione_regolare</parameter></paramdef>
+      <paramdef>string <parameter>stringa</parameter></paramdef>
+      <paramdef>int 
+       <parameter><optional>limite</optional></parameter>
+      </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Questa funzione ha un comportamento identico a <function>split</function>
+     tranne che per il fatto di non distinguere tra lettere maiuscole e minuscole.
+    </para>
+    <para>
+     Vedere anche
+     <function>preg_spliti</function>,
+      <function>split</function>,
+     <function>explode</function> 
+     e <function>implode</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.sql-regcase">
+   <refnamediv>
+    <refname>sql_regcase</refname>
+    <refpurpose>
+     Genera una espressione regolare per riconoscimenti senza distinguere tra 
+maiuscole e minuscole
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>string <function>sql_regcase</function></funcdef>
+      <paramdef>string <parameter>stringa</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     La funzione restituisce una espressione regolare che
+     sia in grado di riconoscere il parametro <parameter>
+     stringa</parameter>, a prescindere dalle lettere maiuscole 
+     minuscole. L'espressione regolare restituita corrisponde
+     a <parameter>string</parameter> con ciascun carattere riportato
+     tra parentesi. Ogni parentesi contiene il singolo carattere
+     in maiuscolo ed in minuscolo. Se il carattere non esiste in forma
+     minuscola o maiuscola, il carattere originale vie riportato due volte.
+     <example>
+      <title><function>sql_regcase</function> Esempio</title>
+      <programlisting role="php">
+<![CDATA[
+echo sql_regcase ("Foo bar");
+]]>
+      </programlisting>
+     </example>
+     visualizza <screen>[Ff][Oo][Oo] [Bb][Aa][Rr]</screen>.
+    </para>
+    <para>
+     Questa funzione torna utile quando si devono ottenere espressioni regolari
+     non distinguono tra lettere maiuscole e minuscole da passare a prodotti che
+     supportano espressioni regolari che distinguono il tipo di lettera.
+    </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