View Single Post
Old 25-03-2005, 18:47   #1
beppegrillo
Senior Member
 
L'Avatar di beppegrillo
 
Iscritto dal: Mar 2004
Messaggi: 1451
php + espressioni regolari

Ho un file di testo, da cui estraggo delle informazioni e costruisco dinamicamente un pdf. Fin quì nessun problema.
All'interno del file di testo, ho dei tags stile html, ad esempio ho
ciao a tutti <b>saluti</b> !, significa chiaramente che saluti deve essere stampato in grassetto.
Ho utilizzato la funzione preg_match in questa maniera
Codice PHP:
if (preg_match ("/(<b>)?([^\/]+)?< backslash /b>/i ",$buffer)) {
             
$pdf->Cell(180,5,$buffer[0],0,1);
             
$pdf->SetFont('Arial','B',10);
             
$patterns[1] = "/<b>/";
              
$patterns[2] = "/<\/b>/";
              
$replacements[1] = "";
             
$replacements[2] = "";
              
$buffer preg_replace($patterns$replacements$buffer);
        }
        else
          
$pdf->SetFont('Arial','',10); 
L'unico problema che ho è che la variabile $buffer, che contiene una stringa del file di testo letta mendiante fgets, non viene scomposta in un array contente i match che vengono fatti mediante l'espressione regolare.

Questo è un esempio preso da php.net

Codice PHP:
<?php
// come ottenere il nome dell'host da un URL
preg_match("/^(http:\/\/)?([^\/]+)/i",
"http://www.php.net/index.html"$matches);
$NomeHost $matches[2];
// come ottenere gli ultimi due segmenti del nome dell'host
preg_match("/[^\.\/]+\.[^\.\/]+$/",$NomeHost,$matches);
echo 
"Nome del dominio:  {$matches[0]}\n";
?>
Grazie.
__________________
Ciao ~ZeRO sTrEsS~
beppegrillo è offline   Rispondi citando il messaggio o parte di esso