2010-12-13 5 views
3

abgegrenzt ist Auf der Suche nach PHP-Hilfe, Best Practice. Was ist ein guter Weg, um diese Zeilen zu brechen? Ich habe nach explodieren gesucht oder ist ein Regex besser? und dann vielleicht in einer Tabelle anzeigen? danke für deinen Beitrag.Was ist der beste Weg, um Zeichenkette Daten zu teilen, die in PHP

Eingabedatei:

PRE:abc:KEY1:null:KEY2:/myproject/data/dat_abc_2010120810.gz1 
PRE:def:KEY1:sdsu:KEY2:mail_abc.dat.2010120810.gz1 

erwartete Ausgabe oder Web-Seite für die Anzeige:

PRE KEY1 KEY2 
=== ==== ====================================== 
abc null /myproject/data/dat_abc_2010120810.gz1 
def sdsu mail_abc.dat.2010120810.gz1 
+2

Gehen Sie mit 'explode' - do regex nicht verwenden, wenn es nicht notwendig ist. – casablanca

Antwort

6

Wenn Sie eine Datei so habe ich würde es in zwei Schritten tun, wenn ich Sie wäre ...

ersten Schritt

Verwenden file(), um ein Array zu erhalten, das die Datei darstellt.

zweiten Schritt

Jetzt können Sie verwenden explode() zu bekommen, all die verschiedenen Spalten und geben sie.

Schnell Beispiel:

<?php 
$output = ""; 

$file = file("data.txt"); 
foreach ($file as $line) 
{ 
    $cols = explode (":", $line); 
    $output .= "{$cols[0]} {$cols[1]}"; 
} 
?> 

Hoffnung, das hilft.

4

explode wird gut funktionieren:

$fp = fopen('myfile.txt', 'r'); 
while ($line = fgets($fp)) 
    $parts = explode(':', $line); 
    $array = array(); 
    for ($i=0; $i<count($parts); $i+=2) { 
     $array[$parts[$i]] = isset($parts[$i+1]) ? $parts[$i+1] : 'null'; 
    } 
    print_r($array); 
} 

Will Ausgang:

Array 
(
    [PRE] => abc 
    [KEY1] => null 
    [KEY2] => /myproject/data/dat_abc_2010120810.gz1 
) 
Array 
(
    [PRE] => def 
    [KEY1] => sdsu 
    [KEY2] => mail_abc.dat.2010120810.gz1 
) 
Verwandte Themen