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.