supergecko
Goto Top

PHP .csv einlesen und verarbeiten

Hallo,

ich habe folgendes Problem, ein PHP Skript liest test.csv ein und soll aus deren Einträgen eine URL vervollständigen und Aufrufen.

Soweit so gut, allerdings wird nach dem einlesen der Datei an jedes "Symbol" ein "__" gehängt was die entstehende URL ungültig macht.
Ich habe es bereits mit preg_replace, rtrim, trim und wie sie alle heißen versucht.

Hier der Quellcode
<?php
// Einlesen der Datei
$csv = file ('test.csv');   

// Durchlaufen aller Symbole 
foreach ($csv as $symbol) 
{
	// Url zusammensetzen
	$data = file_get_contents('http://www.seite.de/?q='.$symbol.''); //Hier wird die Variable angehängt  
	print ($data);  // Ausgabe, anhand derer ich den Fehler gefunden habe
}
?>

Mit $data wird nochmehr gearbeitet, der Rest des Skripts ist aber unrelevant.
Bin für jede Hilfe dankbar

Mfg supergecko

Content-ID: 124649

Url: https://administrator.de/contentid/124649

Ausgedruckt am: 25.11.2024 um 23:11 Uhr

manuel-r
manuel-r 10.09.2009 um 12:38:56 Uhr
Goto Top
Zwei Fragen hätte ich da
  • Was wird denn ausgegeben, wenn du einfach mal ein echo $symbol."<br>" machst
  • Wozu soll hinter q='.$symbol noch der leere String angehängt werden mit .''

Manuel
dog
dog 10.09.2009 um 12:46:10 Uhr
Goto Top
Und vorallem: Wie sieht die CSV überhaupt aus?

Ach...auch egal. Du hast ja sicher die PHP-Doku zu file() gelesen:

Die Funktion file() ist identisch mit readfile(), außer dass die eingelesene Datei als Array zurückgegeben wird. Jedes Feld des Arrays korrespondiert mit einer Zeile der Datei. Der Zeilenumbruch bleibt erhalten. Im Fehlerfall gibt file() FALSE zurück.
Supergecko
Supergecko 10.09.2009 um 12:56:12 Uhr
Goto Top
jap hab die doku gelesen, die csv beinhaltet 3 bis 5 stellige zeichen, alle in der ersten spalte untereinander.
Testweise habe ich auch schon eine .txt datei eingelesen, per foreach das erstellte array ausgegeben und das gleiche ergebnis bekommen.
Supergecko
Supergecko 10.09.2009 um 13:00:07 Uhr
Goto Top
wenn in der csv 5 einträge sind z.B: aas aac dfl dfg cde (alle untereinander in der ersten spalte)
gibt er die einträge korrekt und ohne _ aus,

gebe ich jedoch die url aus wird ein __ angängt
dog
dog 10.09.2009 um 13:20:25 Uhr
Goto Top
Jetzt schau dir doch bitte nochmal genau meine Hervorhebung an.
Supergecko
Supergecko 10.09.2009 um 13:37:02 Uhr
Goto Top
Hallo dog,

mithilfe von $symbol = str_replace("\n", " ", $symbol);

habe ich ein _ entfernen gekonnt, ein zweites _ sitzt allerdings noch und will nicht weg.
den befehl zweimal hintereinander ausführen hat auch nichts gebracht.
dog
dog 10.09.2009 um 13:41:18 Uhr
Goto Top
...
$symbol = rtrim($symbol);
...
Supergecko
Supergecko 10.09.2009 um 13:59:34 Uhr
Goto Top
Es Funktioniert !

rtrim hatte ich schon probiert, anscheinend hatte ich da irgendeinen Fehler mit reingewurstelt.

Vielen Dank für die Hilfe.

Mfg supergecko