php fremddatei auslesen < Sonstige < Schule < Informatik < Vorhilfe
|
Hallo !!
Ich hab ein script geschrieben, dass in einer anderen datei abc.txt jede zeile einzeln ausließt:
1: | <?php
| 2: | $handle = fopen("abc.txt","r");
| 3: |
| 4: | while (!feof($handle)) {
| 5: |
| 6: | $n = fgets ($handle,1000);
| 7: |
| 8: | echo "<p>$n";
| 9: |
| 10: | if ($n=="du") {
| 11: | echo "<p><font color=red>DA IST ES !</font>";
| 12: | }
| 13: |
| 14: | }
| 15: | fclose($handle);
| 16: | ?>
|
in abc.txt stand:
1: | ein
| 2: | depp
| 3: | bist
| 4: | du
| 5: |
|
das script gibt auch jedes dieser einzelnen wörter einzeln aus.
das heiß zu einem zeitpunkt war $n="du"
trotzdem gibt das script nie "DA IST ES !" aus....
warum??
Ich würde mich riesig freuen, wenn jemand weiß warum !
Oder hat jemand eine andere idee, wie man den inhalt in einer zeile einer fremddatei abfragen kann??
PS: warum labert mir das forum filtersystem rein, ich hätte einen eingabefehler gemacht while () {} ist korrekt geschlossen....
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:02 Do 17.08.2006 | Autor: | Palin |
Hi mit php kenn ich mich leider nicht so aus.
Aber setz mal zwischen die Wörter in der Schleife eine Ausgabe um zu sehen ob die Wörter wirklich einzel eingelesen sind oder ob nur der Zeilen umbruch mitgenommen wurde.
Was auch noch sein könnte ist das bei du noch ein Leerzeichen dabei ist.
|
|
|
|
|
Hab beides gecheckt, ist aber beides nicht der Grund -.-
Danke aber für deine Bemühung !
Aber hat vielleicht jemand noch eine Idee ??
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 14:04 Fr 18.08.2006 | Autor: | ardik |
Hallo Richard,
fgets() liefert die gesamte Zeile incl. Zeilenendezeichen zurück.
Interessant wäre, ob in abc.txt nach "du" noch eine neue Zeile kommt, oder ob das "u" das letzte Zeichen der Datei ist. Dann scheint fgets() entweder ein Zeilenendezeichen hinzuzufügen oder gar das EOF-Zeichen mitzuliefern. Ich vermute aber, da ist noch ein Zeilenendezeichen in der Datei vorhanden...
Jedenfalls müsstest Du das Problem allgemein beheben können, indem Du noch sowas wie
einfügst
Wenn Du's weiter analysieren möchtest, könntest Du mal die Länge von $n mit abfragen oder auch mal die Charcodes aller Zeichen in $n ausgeben lassen.
Kennst Du die PHP-Dokumentation (gibt's auch auf deutsch)?
Zum Anzeigefehler des Forum-Filtersystems:
Dies kümmert sich nicht um php-code etc., aber nach $n erwartet es eine (LaTeX-)Formel, die es aber nicht über mehrere Zeilen hinweg verarbeiten kann.
Ich habe (als Mod) mal an passenden Stellen [mm]\mbox{[code]...[/code]}[/mm] hinzugefügt und - schwupp - sieht das alles doch gleich viel hübscher aus...
Ich musst auch diesem Text das $n immer in [code] einschließen, damit das Dollarzeichen nicht stört...
Schöne Grüße,
ardik
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:15 Sa 19.08.2006 | Autor: | Bit2_Gosu |
wow danke Ardik !!!
mit $n=trim($n)
gehts ^^
Bevor ich dich jetzt mit weiteren Fragen löchere, wie was trim() macht, lese ich mir wohl mal deinen Link durch ;)
|
|
|
|