Datei bis Steuerzeiche auslesen

Das Problem mit dem auslesen der doppelten Steuerzeichen habe ich, glaube ich, gelöst.

PHP:
<?php 
$contents = file_get_contents('records/mbeat_news.csv'); 
$array = explode(chr(13), $contents);
for($n=0;$n<count($array);$n++)
{
$daten = explode(",",$array[$n]);
}
?>

Ich weiß nun nicht, wie ich den einzelnen Inhalt des Satzes ansprechen kann.
 
Also mit "den einzelnen Inhalt des Satzes" deute ich jetzt mal so, dass du jetzt meinetwegen den Titel aus der Zeile x ausgeben möchtest.

Das kannst du nur innerhalb der for schleife tun. Meinetwegen hast du 234 Zeilen und befindest dich in der Schleife gerade in Zeile 155, dann kannst du auch nur die Daten dieser Zeile auswerten.

Nach deinem Quellcode hast du ein array $array aus der csv Datei erstellt mit so vielen Elementen wie die csv Datei vorher Zeilen bzw. chr(13) hatte. Dieses bleibt natürlich solange du die Seite nicht verlässt gespeichert.

In der For Schleife gehst du jedes einzelne Element des array $array durch also quasi jede Zeile und erstellst daraus ein neues array $daten. Du hast natürlich die Möglichkeit dieses vorher in beliebiger Reihenfolge zu sortieren.
Beim erneuten Aufrufen der For Schleife werden die Daten des array $daten überschrieben. Deswegen kannst du nur in der Schleife darauf zugreifen.
Das array $daten hat jedesmal widerrum so viele elemente wie vorher Kommas in der Zeile waren (natürlich plus 1). Das erste Element der jeweiligen Zeile ist dann immer unter der array-Variablen $daten[0] gespeichert. Das zweite unter $daten[1] und so weiter.

Also ausgabe auf Bildschirm echo "Titel: ".$daten[1];

Wenn du das ganze in einer Tabellenform ausgebn möchtest, dann schreib den Anfang der Tabelle einfach vor die For Schleife und die Zeilen als <tr> und </tr> in die Schleife. Nach der Schleife beendest du die Tabelle wieder.

Am besten schaust du zum Thema array mal bei http://www.selfphp.de vorbei.

PS: schreib doch am besten den Inhalt der *.csv in eine Datenbank, dann kommst du jederzeit und wesentlich schneller an deine Daten. Du kannst die *.csv mit einem ähnlichen Skript in die Datenbank übertragen
 
Danke! Ich ahbe das Script jetzt so aufgebaut. Es funktioniert auch bis auf die Links!

PHP:
<?php 
$contents = file_get_contents('records/mbeat_news.csv'); 
$array = explode(chr(13), $contents);
for($n=0;$n<count($array);$n++)
{
$daten = explode(",",$array[$n]);
$artist = $daten[0];
$title = $daten[1]; 
$label = $daten[2]; 
$typ = $daten[3]; 
$country = $daten[4];
$ordernr = $daten[5];
$price = $daten[6];
$image = $daten[7];
$stream = $daten[8];
$info = $daten[9];
$catalog = $daten[10];
echo "<tr>
      <td width=\"13%\" rowspan=\"3\"><div align=\"center\"><img src=\"".$image."\" border="0"></div></td>
      <td colspan=\"2\"><p>$artist - $title&nbsp;&nbsp;&nbsp;&nbsp;$label&nbsp;$typ $country</td>
	  </tr>
      <tr> 
      <td width=\"78%\">$info</td>
      <td width=\"9%\"><div align=\"center\"><a href=\"".$stream."\"><img src=\"grafik/stream-buttom.gif\" border="0"></a></div></td>
      </tr>
      <tr> 
      <td colspan=\"2\">$ordernr - $price</td>
      </tr>
      <tr> 
      <td colspan=\"3\">&nbsp;</td>
	  </tr>"; 
}
?>

Wo ist in den Variablenübergaben und der Benutzung der Fehler wenn folgende Meldung kommt?

Parse error: parse error, expecting `','' or `';'' in /.../.../.../records.php on line 50

Line 50: <td width=\"13%\" rowspan=\"3\"><div align=\"center\"><img src=\"".$image."\" border="0"></div></td>
 
Zurück