| 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! |
 |

16-02-2010, 01:06
|
|
simi1987
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 9
|
|
Daten aus Datei lesen und sortieren
Hallo,
ich kann wirklich nicht gut PHP bin aber mitlerweile ganz stolz auf mich!
Ich habe es geschaft eine Zahlung zu Paypal zu übertragen und ein Ergebniss zurück zu bekommen und dieses Ergebniss in einer Datei zu speichern...
Jetzt bin ich aber auch am Ende.
Ich möchte jetzt gerne bestimmte Informationen aus dieser Textdatei auslesen und den Eintrag danach löschen - Damit ich den Kunden automatisch als "gezahlt" in die Datenbank eintragen kann und ihm das Buch zuschicken kann.
Aus der Textdatei interessiert mich nur EINE Information:
Zitat:
|
transaction_subject=( KdNr. 18 ) 1x Chorographie - Handwerk und Vision
|
und um genau zu sein nur die Zahl, in diesem Beispiel: 18
Hier mal der Code aus der Datei:
Zitat:
[02/16/2010 12:02 AM] - SUCCESS!
IPN POST Vars from gateway:
mc_gross=59.60, protection_eligibility=PartiallyEligible, address_status=unconfirmed, payer_id=J3WWKEBRRWYY8, tax=0.00, address_street=ESpachstr. 1, payment_date=15:01:48 Feb 15, 2010 PST, payment_status=Pending, charset=windows-1252, address_zip=79111, first_name=Test, address_country_code=DE, address_name=Test User, notify_version=2.9, custom=, payer_status=verified, business=tim.o_1266264534_biz@xxx.com, address_country=Germany, address_city=Freiburg, quantity=1, verify_sign=Aiw078V353cmpBS9fegUqAujOCEOALumdZcLdEs4cfRPWNJle-6Wk5L0, payer_email=tim.ow_1266264495_pre@xxx.com, txn_id=1RB56830KN904502H, payment_type=instant, last_name=User, address_state=Empty, receiver_email=tim.o_1266264534_biz@xxx.com, receiver_id=FSQS8QMZUSJJ2, pending_reason=multi_currency, txn_type=web_accept, item_name=2x Chorographie - Handwerk und Vision, mc_currency=EUR, item_number=, residence_country=DE, test_ipn=1, handling_amount=0.00, transaction_subject=( KdNr. 1 ) 2x Chorographie - Handwerk und Vision, payment_gross=, shipping=0.00,
IPN Response from gateway Server:
HTTP/1.1 200 OK
Date: Mon, 15 Feb 2010 23:01:53 GMT
Server: Apache/1.3.33 (Unix) mod_fastcgi/2.4.2 mod_gzip/1.3.26.1a mod_ssl/2.8.22 OpenSSL/0.9.7e
Set-Cookie: c9MWDuvPtT9GIMyPc3jwol1VSlO=SL7LOBkkdd3vPiewyR5TnOdgZzBC4GLoMR-2Rz5EmWSYpJilYuddlPXgZidE3NGpkdnzk5ARtGugvp-28mh6Pb-MWf99coaxutV15fT2JLjFT3KKqtMxnEwizh04NspL0Vvt60%7cK5z2kFZ7AEkaJqhfoDdv4_D5P_HjYfVw6ROCfRNKY1TtMEgyxw 0V2L9M6eq8jHNEg8y2b0%7cmggTaqB-sg7dlS4Mq9AE3GdZRT1B-fQ84ly8DutdNcgcx-XmVmHwqYI0pCjKYgCEfjONl0%7c1266274913; domain=.paypal.com; path=/
Set-Cookie: cookie_check=yes; expires=Thu, 13-Feb-2020 23:01:53 GMT; domain=.paypal.com; path=/
Set-Cookie: navcmd=_notify-validate; domain=.paypal.com; path=/
Set-Cookie: navlns=0; expires=Sun, 10-Feb-2030 23:01:53 GMT; domain=.paypal.com; path=/
Set-Cookie: Apache=10.191.196.11.230631266274913468; path=/; expires=Sun, 03-Jan-04 16:33:37 GMT
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
8
VERIFIED
0
[02/16/2010 12:03 AM] - SUCCESS!
IPN POST Vars from gateway:
mc_gross=59.60, protection_eligibility=PartiallyEligible, address_status=unconfirmed, payer_id=J3WWKEBRRWYY8, tax=0.00, address_street=ESpachstr. 1, payment_date=15:03:04 Feb 15, 2010 PST, payment_status=Pending, charset=windows-1252, address_zip=79111, first_name=Test, address_country_code=DE, address_name=Test User, notify_version=2.9, custom=, payer_status=verified, business=tim.o_1266264534_biz@xxx.com, address_country=Germany, address_city=Freiburg, quantity=1, verify_sign=ASCGLr663GWXMpse9PymXKF-V83xAPGGk7vwrU7pmCvLlhWWFkNWi5XB, payer_email=tim.ow_1266264495_pre@xxx.com, txn_id=64A62403AN523430N, payment_type=instant, last_name=User, address_state=Empty, receiver_email=tim.o_1266264534_biz@xxx.com, receiver_id=FSQS8QMZUSJJ2, pending_reason=multi_currency, txn_type=web_accept, item_name=2x Chorographie - Handwerk und Vision, mc_currency=EUR, item_number=, residence_country=DE, test_ipn=1, handling_amount=0.00, transaction_subject=( KdNr. 108 ) 2x Chorographie - Handwerk und Vision, payment_gross=, shipping=0.00,
IPN Response from gateway Server:
HTTP/1.1 200 OK
Date: Mon, 15 Feb 2010 23:03:09 GMT
Server: Apache/1.3.33 (Unix) mod_fastcgi/2.4.2 mod_gzip/1.3.26.1a mod_ssl/2.8.22 OpenSSL/0.9.7e
Set-Cookie: c9MWDuvPtT9GIMyPc3jwol1VSlO=u8AagZpwGRZtSagxizkqzUX-IXf7VC16j-uGaNIyJbFIosHu3zyTUoYesfrWuXO32H3r0r2vd8XxzxBK4RRjiHD7baGiSjggYWav7af2Ld34r5Mt99EuRH6Ndl7Uw1suLReBZ0 %7c9AeYvbLm5fJjUR5ARIOpr7gMfeMUEeCHdvCz4sme70jo3R6SVFYu3CcVuAqTFnPeBodqGG%7cov_ub0BedaLXwtM6ui9ea3Fl coaQF66BWA7FJqI7s0VaZ1y0NNuamOrZ8JuIBEYhGOk1lG%7c1266274989; domain=.paypal.com; path=/
Set-Cookie: cookie_check=yes; expires=Thu, 13-Feb-2020 23:03:09 GMT; domain=.paypal.com; path=/
Set-Cookie: navcmd=_notify-validate; domain=.paypal.com; path=/
Set-Cookie: navlns=0; expires=Sun, 10-Feb-2030 23:03:09 GMT; domain=.paypal.com; path=/
Set-Cookie: Apache=10.191.196.11.19871266274989240; path=/; expires=Sun, 03-Jan-04 16:34:53 GMT
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
8
VERIFIED
0
|
Bisher bin ich so weit:
PHP-Code:
$inhalt = file('paypal.ipn_results.log');
echo $inhalt[0];
Am liebsten würde ich jetzt nur die Kundennummern ( KdNr. 178 ) aus der Datei rausfiltern und die Datei danach KOMPLETT löschen (ist glaube ich das einfachste?)
Kann mir jemand dabei bitte helfen?
Geändert von simi1987 (16-02-2010 um 01:08 Uhr)
|

16-02-2010, 01:11
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
sieh dir am besten mal Reguläre Ausdrücke an. Mit denen kann man Texte sehr gut nach Mustern filtern.
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! 
|

16-02-2010, 01:13
|
|
simi1987
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 9
|
|
Danke für die schnelle Antwort, werde ich mir direkt mal ansehen.
|

16-02-2010, 01:14
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Nimm dir Zeit dafür. Wenn du noch nie damit zu tun hattest, wird es eine Menge Lesestoff sein...
Aber es lohnt sich!
__________________
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! 
|

16-02-2010, 01:33
|
|
simi1987
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 9
|
|
Mh... Spontan würde ich jetzt sagen:
Ich mache eine schleife und gehe meine Textdatei Zeile für Zeile durch und kucke dann mit folgendem Code ob mein Text vorhanden ist:
PHP-Code:
if (preg_match("/x Chorographie/", $inhalt[$a]))
Dann hätte ich wenigstens schonmal den groben Code weg sortiert....
Aber das Problem hierbei ist ja dass der Zeilenbruch ungünstig kommen könnte und ich so die wichtige Information verliere z.B.
Zitat:
|
blablabla transaction_subject=( KdNr. 1 ) [ZEILENBRUCH] 2x Chorographie - Handwerk und Vision, blablabla
|
Hast du nicht noch einen kleinen Tipp für mich?
Mh... oder vieleicht mit explode ^^
PHP-Code:
$content = implode("", file('paypal.ipn_results.log'));
$teile = explode(')', $content);
Jetzt mach ich noch preg_match und sortiere so die Teile raus wo eine "KdNr." dabei ist.
dann implode ich wieder alles und explode nochmal die mit KdNr.
mh... mit sicherheit nicht elegant aber so langsam sollte ich es haben
Geändert von AmicaNoctis (16-02-2010 um 02:13 Uhr)
Grund: Doppelpost
|

16-02-2010, 02:11
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Willst du nur die Kundennummern haben, wenn Choreographien bezahlt wurden? Wenn nicht, würde ich einfach nach dem Betreff filtern:
PHP-Code:
preg_match_all("<transaction_subject=\\(\\s*KdNr\\.\\s+(\\d+)>i", $inhalt, $matches);
$inhalt ist der gesamte Inhalt der Datei; $matches[1] ist dann ein Array von Kundennummern.
Trotzdem bleibt für mich eine Frage offen: Was ist, wenn jemand nicht vollständig bezahlt, sondern nur einen Teil des Betrages?
Übrigens: file_get_contents(...) statt implode("", file(...))
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! 
Geändert von AmicaNoctis (16-02-2010 um 02:14 Uhr)
|

16-02-2010, 02:28
|
|
simi1987
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 9
|
|
Mh... Jetzt bin ich zwar fast fertig mit meinem Code aber deiner sieht irgendwie besser aus  Danke dafür, werde ich direkt mal testen!
Also es gibt sobald ich weiss keine Möglichkeit bei Paypal nur einen Teilbetrag zu zahlen. Ich sende ja eine Zahlungsaufforderung mit XX Euro an Paypal.
Da kann man dann eigentlich nurnoch Zahlungsmethode wählen und "jetzt zahlen" drücken, aber eine Funktion um einen Teilbetrag zu zahlen habe ich noch nicht gesehen?
Würde der Kunde jetzt einen Teilbetrag direkt an meine eMail-Adresse überweisen würde Paypal mir auch garkeine Rückmeldung geben sondern nur wenn er direkt meine Zahlungsaufforderung bezahlt.
|

16-02-2010, 12:19
|
|
simi1987
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 9
|
|
So, das Script funktioniert jetzt und dein Code ist auch echt genial - nochmal danke dafür!
Eine frage hätte ich aber noch:
Gibt es irgendwo eine gute Anleitung für diese Zeichen? Weil ich würde den Code jetzt auch gerne komplett verstehen damit ich das nächste mal nicht wieder fragen muss
(\\s*KdNr\\.\\s+(\\d+
Abgesehen von diesem Link: PHP: PCRE - Manual
Also eine Seite wo es "richtig" erklärt wird, kennt da wer was?
|

16-02-2010, 12:33
|
|
simi1987
Registrierter Benutzer
|
|
Registriert seit: Feb 2010
Beiträge: 9
|
|
und nochmal danke! Genau was ich gesucht habe
|
|
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
|