PDA

View Full Version : php + espressioni regolari


beppegrillo
25-03-2005, 19:47
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


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

<?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.;)