| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

01-05-2010, 11:52
|
|
BananaJo
Registrierter Benutzer
|
|
Registriert seit: Aug 2008
Beiträge: 249
|
|
Brauche Hilfe zum verarbeiten von CSV ausgabe
Hallo,
ich rufe per URL eine Datei auf, die mir eine CSV ausgabe liefert, die ich dann gerne verarbeiten möchte.
Nur weiss ich leider nicht wie ich das am einfachsten machen soll, bzw. ob es dafür schon funktionen gibt um das möcglichst umkompliziert zu verarbeiten.
So sieht die ausgabe der URL aus:
PHP-Code:
"leaduuid";"campaign";"eventTypeId";"type";"leadId";"creativeId";"adspaceid";"subid";"eventTime";"visitTime";"status";"amount";"commission";"created";"lastUpdated" "2452334564563475567567";"845";"10812";"lead";"30225";"12811";"148091";"0";"2010-04-26 14:14:58";"2010-04-26 14:13:00";"-1";"0.00";"66.00";"2010-04-26 14:14:58";"2010-04-28 11:44:10" "5465467565786787698988";"845";"10795";"lead";"30372";"12811";"148091";"0";"2010-05-01 11:41:35";"2010-05-01 11:36:10";"0";"0.00";"5.50";"2010-05-01 11:41:35";"0"
Ich möchte die Daten in meinder Datenbank speichern und will diese zuvor jeweils als array speichern, so das ich diese in einer schleife verarbeiten kann.
weiss jemand auf die schnelle eine gute lösung?
|

01-05-2010, 12:04
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
|

01-05-2010, 12:30
|
|
BananaJo
Registrierter Benutzer
|
|
Registriert seit: Aug 2008
Beiträge: 249
|
|
also der aufruf einer externen url die die CSV liefert funzt irgendwie nicht.
PHP-Code:
<?php
$url = "https://www.url-zur-csv.de";
$row = 1;
if (($handle = fopen($url, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>
FEHLER MELDUNG:
failed to open stream: No error in E:\xampp\htdocs\adseen\test123\banner\24api.php on line 4
|

01-05-2010, 12:43
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
wird der HTTPS-Stream-Wrapper auf deinem System unterstützt? Hast du es vorher schon mal irgendwie hinbekommen, diese Datei mit PHP abzurufen, also ohne Rücksicht auf die enthaltenen CSV-Daten? Klappt es mit fsockopen statt fopen oder mit cURL?
Wenn du es hinbekommst, die Datei irgendwie in einen String zu bekommen, kannst du danach auch mit PHP: str_getcsv - Manual darauf zugreifen.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

01-05-2010, 13:03
|
|
BananaJo
Registrierter Benutzer
|
|
Registriert seit: Aug 2008
Beiträge: 249
|
|
Also die ausgabe erfolgt ja in einem String, wenn ich die URL in den Browser eingebe
|

01-05-2010, 13:05
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Zitat:
Zitat von BananaJo
daraus werde ich irgendwie nicht schlau.. wo liegt denn das Problem jetzt?
|
- Die angeforderte Ressource liegt in einem mittels HTTP Basic Authentication geschützten Bereich (Status-Code 401)
- Es erfolgt ein nicht RFC-konformer Redirect. Korrekte Redirects mit absoluter URL kann fopen() jedoch handhaben (Status-Code 301 oder 302)
- Die Ressource ist nicht vorhanden (Status-Code 404)
- Der Zugriff ist verboten (Status-Code 403)
Häufige Fehlermeldungen - Warning: fopen() - No error
|

01-05-2010, 13:11
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Also doch cURL und str_getcsv...
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

01-05-2010, 13:35
|
|
BananaJo
Registrierter Benutzer
|
|
Registriert seit: Aug 2008
Beiträge: 249
|
|
also ich habe jetzt die lösung ausprobiert
PHP-Code:
function csv_to_array($csv, $delimiter = ';', $enclosure = '"', $escape = '\\', $terminator = "\n") {
$r = array();
$rows = explode($terminator,trim($csv));
$names = array_shift($rows);
// echo $names;
$names = str_getcsv($names, $delimiter, $enclosure, $escape);
$nc = count($names);
foreach ($rows as $row) {
if (trim($row)) {
$values = str_getcsv($row,$delimiter,$enclosure,$escape);
if (!$values) $values = array_fill(0,$nc,null);
$r[] = array_combine($names,$values);
}
}
return $r;
}
//Diese URL erstellt den String zur CSV
$csv = "https://www.url-zum-csv-string.de";
csv_to_array($csv);
leider bekomme ich keine ausgabe.. ich denke es liegt an der URL, so das der String nicht richtig ankommt oder so.. muss ich den irgendwie besonders aufrufen oder so.. so das der in $csv steht?
|

01-05-2010, 13:38
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Ich hab dir ja schon gesagt, dass du dich zu allererst darum kümmern sollst, dass du überhaupt den CSV-Code erstmal mit PHP abgerufen bekommst, z. B. mit cURL. Wie sind in diesem Bereich deine Fortschritte?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

01-05-2010, 15:25
|
|
BananaJo
Registrierter Benutzer
|
|
Registriert seit: Aug 2008
Beiträge: 249
|
|
also das mit cUrl hab ich jetzt gut hingekommen.
leider geht bei dir dir funktion "str_getcsv" nicht.. gibts da ne alternative bzw kann man diese irgendwo einschalten?
|

01-05-2010, 15:30
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Gewöhne dir bitte erst mal „funktioniert nicht“-Statements ab - und liefere stattdessen vernünftige, nachvollziehbare Problembeschreibungen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

01-05-2010, 15:37
|
|
BananaJo
Registrierter Benutzer
|
|
Registriert seit: Aug 2008
Beiträge: 249
|
|
PHP-Code:
if(!function_exists('str_getcsv')) { echo "nicht da"; }
bekomme die ausgabe: nicht da
|

01-05-2010, 15:38
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Die Funktion gibts erst ab PHP 5.3
|

01-05-2010, 15:45
|
|
BananaJo
Registrierter Benutzer
|
|
Registriert seit: Aug 2008
Beiträge: 249
|
|
hmm.. das ist ja doof..
wie hat man das den vorher gelöst? gibts da ne alternative dafür, die so ähnlich funktioniert?
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|