fastix®: Automatische Nummerierung

Beitrag lesen

Moin!

Den Beweis, dass dieser Konstrukt besser(schneller) als file() ist,
steht dann aber immer noch aus ...

Wieso? fgetcsv() ist eine PHP-eigene Funktion. Diese liegt also bereits in binärer Form vor. Dem nach wird anders als bei einem Konstrukt, bei welchem Du das CSV selbst mittels vieler in einer erst noch zu interpretierenden Sprache geschriebenen Einzelschritte zerlegst, der Interpreter weniger gefordert. Es ist also zumindest sehr wahrscheinlich, dass ein solcher Code deutlich schneller ist. Wer mag kann ja testen...

Du bist ein wenig empfindlich: Wenn jemand Hinweis auf besseren/schnelleren Code gibt, dann macht er das nicht um Dich herabzuwürdigen.

Rein IMHO ist es ganz schoen fies, einem Anfaenger ungetesteten Code
unterzuschieben, das zeugt von wenig Professionalitaet ...

Hier gibt es Hilfe zur Selbsthilfe und keine "mundfertigen" Skripte. Er fragt hier, will also lernen. Absicht sind die Fehler nun gerade nicht, aber hier ist eben nicht das "GetPHP"- oder "Wir schreiben Dein Skript"- Forum, sondern das SelfHTML-Forum.

Bei "irre komplizierten" Sachen teste ich den Code trotzdem - schon weil es mich selbst interessiert.

Hier für Dich der getestete Code:

<?php  
$datei='./test.txt';  
if (! is_readable($datei)) { die("Fatal: Die Datei $datei nicht vorhanden oder nicht lesbar."); }  
$handle=fopen($datei, 'r') or die("Fatal: Die Datei $datei konnte nicht geöffnet werden. (lock?)");  
$ar=array();  
while ($ar[] = fgetcsv ( $handle , filesize($datei), ',', '"')) {}  
print_r ($ar);  
?>

oder hier die "Superverbesserung":

<?php  
#Einstellungen  
$datei='./test.txt';  
$delim=',';  
$quot='"';  
  
# Funktionen  
function InTag($str, $tag, $extra='') {  
  return '<'.trim($tag.' '.$extra).'>'.$str.'</'.$tag.">\n";  
}  
  
# Run!  
$iCounter=0;  
$strTabelle='';  
  
if (! is_readable($datei)) { die("Fatal: Die Datei '$datei' ist nicht vorhanden oder nicht lesbar. (Rechte gesetzt?)"); }  
$handle=fopen($datei, 'r') or die("Fatal: Die Datei '$datei' konnte nicht geöffnet werden. (lock?)");  
  
while ($ar = fgetcsv ( $handle , filesize($datei), $delim, $quot )) {  
   if (isset($ar[1])) { # Zur Vermeidung leerer letzter Zeile in der CSV-Datei  
     $strZeile=InTag(++$iCounter, 'th', 'class="tr_' . $iCounter % 2 . '"');  
     foreach ($ar as $strZelle) {  
        $strZeile .= InTag(htmlentities($strZelle), 'td');  
     }  
     $strTabelle.=InTag($strZeile, 'tr');  
   }  
}  
print  InTag($strTabelle, 'table', 'border="0"');  
?>

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development