CSV-Datei in HTML-Tabelle
elBee
- php
Hallo,
ich habe hier ein PHP-Script, dass mir eine CSV-Datei (bands.csv)
in einer HTMl-Tabelle ausgibt. Ich habe nun das Problem, dass ich die Spalte B (in der eine Link hinterlegt wird) nicht ausgegeben werden
soll, dafür soll der Text (Bandname) in Spalte A als Link fungieren.
Hier mal das PHP-Script:
<?php
$filename = "bands.csv"; //here's the filename
$id = fopen($filename, "r"); //open the file
while ($data = fgetcsv($id, filesize($filename),";")) //start a loop
$table[] = $data; //put each line into its own entry in the $table array
fclose($id); //close file
echo "<table>\n";
foreach($table as $row)
{
echo "<tr>";
foreach($row as $data)
echo "<td>$data</td>";
echo "</tr>\n";
}
echo "</table>\n";
?>
Die Ausgabe sieht folgendermaßen aus:
SPALTE A | SPALTE B | SPALTE C | SPALTE E
BAND1 | http://www.beispiel.de | Stuttgart | Rock
BAND2 | keine | Hamburg | Metal
BAND3 | http://www.beispiel.de | Berlin | Crunch
etc...
Kann mir hier jemand helfen, wie ich das am blödesten mache?!?
Viele Grüße
elBee
echo $begrüßung;
Kann mir hier jemand helfen, wie ich das am blödesten mache?!?
Dafür gibt es viele Möglichkeiten. Die blödeste davon kenne ich nicht.
Ich hätte aber einen Vorschlag, wie du dein Ziel erreichen könntest: Nimm statt der foreach($row...) eine for-Schleife, die du von 0 bis count($row) laufen lässt. Dann kannst du in Abhängigkeit von der Spaltennummer deine Spalten formatieren/ausgeben/unterdrücken.
echo "$verabschiedung $name";
Danke, jetzt bin ich erstmal nach einer Schachtel Zigaretten und einigen toten Synapsen weitergekommen :) und habe das Problem nun
so gelöst:
<?php
$filename = "bands.csv"; //Datei zu öffnen
$id = fopen($filename, "r"); //Datei öffnen
while ($data = fgetcsv($id, filesize($filename),";")) //Starte Schleife
$table[] = $data; //Jede Zeile wird in ein Array geschrieben
$ArrayLength = count($table);
fclose($id); //Schließt Datei
echo "<font size=2>";
echo "<br>";
echo "<table border=1 width=600>";
for ($i = 0; $i < $ArrayLength; $i++){
$url="<a href"".$table[$i][1]."" target="_new">".$table[$i][0]."</a>";
echo "<td>";
echo $url;
echo "</td>";
echo "<td>";
echo ( $table[$i][2] );
echo "</td>";
echo "<td>";
echo ( $table[$i][3] );
echo "</td>";
echo "</tr>";
}
echo "</table>";
?>
Aber genau jetzt habe ich ein erneutes Problem:
In der Ausgabe erhalte ich keinen Link...
table[0][0] gibt mir den Namen aus
table[0][1] die URL
Nun habe ich das folgendermaßen zusammengefasst:
$url="<a href"".$table[$i][1]."" target="_new">".$table[$i][0]."</a>";
echo "<td>";
echo $url;
echo "</td>";
Bitte nochmals um Hilfe...
Danke + Gruss
elBee
Tag elBee.
table[0][0] gibt mir den Namen aus
table[0][1] die URL
Da stehen also die korrekten Werte drin. Wie sieht denn der Quelltext aus, der beim Browser ankommt? Übermittelst du auch den korrekten Content-type? Und schließlich: Gibt es irgendwelche Fehlermeldungen oder Warnungen (siehe error_reporting)?
Siechfred
Hallo,
also Errors habe ich keine erhalten, es stand halr nur die
URL als reiner Text da. Ich habe das Problem aber nun folgendermaßen
gelöst:
echo <a href="".($table[$i][1])."" target=_new>".($table[$i][0])."</a>";
nun gehts, aber trotzdem danke...
Grüße
elBee
Tag elBee.
table[0][0] gibt mir den Namen aus
table[0][1] die URLDa stehen also die korrekten Werte drin. Wie sieht denn der Quelltext aus, der beim Browser ankommt? Übermittelst du auch den korrekten Content-type? Und schließlich: Gibt es irgendwelche Fehlermeldungen oder Warnungen (siehe error_reporting)?
Siechfred