tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
9
ZUGRIFFE
674
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Spelmann
    Spelmann Spelmann ist offline Mitglied Brokat
    Registriert seit
    Jul 2005
    Ort
    Nähe Bremen
    Beiträge
    303
    Hallo.

    Folgendes Problem.
    Ich habe zwei Textdateien.
    1. navi.txt
    2. Datei soundso.txt

    navi.txt enthält eine zeilenweise Linkliste mit HTML TAGs die in Flash verarbeitet werden und so aussehen:
    HTML-Code:
    <a href='asfunction:load_file,Datei soundso'><u>Datei soundso</u></a><br>
    Da insbesondere der <a href> Tag ausserhalb vom AS in Flash keinen Sinn macht, sollen alle HTML TAGs
    ignoriert und ausgeblendet werden.

    PHP-Code:
    $fp fopen("navi.txt","r");
    $zeile[] = fgets (strip_tags($fp,100)); //strip_tags() unterbindet das HTML im String
    echo strip_tags($zeile[0]); 
    Das Ergebnis von echo ist wie gewünscht der String: Datei soundso
    Die HTML TAGs werden weder angezeigt noch ausgeführt.

    Nun möchte ich aber mit Hilfe dieser Auswahl das zum Eintrag gehörige Textfile auslesen.
    PHP-Code:
    $fp_neu fopen(strip_tags($zeile[0]).".txt","r"); 
    Aber genau das funktioniert nicht. Obwohl wie oben zu sehen die Variable:
    strip_tags($navi) dem String "Datei soundso" entspricht und demnach die Zeile doch so interpretiert werden müsste:
    PHP-Code:
    $fp_neu fopen("Datei soundso.txt,"r"); 
    bekomme ich eine Fehlermeldung die ich nicht verstehe.

    Code :
    1
    
    Warning: file(Datei soundso): failed to open stream: No such file or directory in /mnt/be2/03/753/00000012/htdocs/min_test/aktuelles/x_fopen_problem/senden.php on line 13

    Weis jemand wie man das richtig schreibt?
    Geändert von Spelmann (22.07.06 um 22:16 Uhr)
     

  2. #2
    Avatar von Spelmann
    Spelmann Spelmann ist offline Mitglied Brokat
    Registriert seit
    Jul 2005
    Ort
    Nähe Bremen
    Beiträge
    303
    Arrgh.
    Scheint doch richtig zu sein jedenfalls im Kleinen.
    Sorry
     

  3. #3
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Eigentlich sollte doch schon am Syntax-Highlighting zu erkennen sein was hier
    PHP-Code:
    $fp_neu fopen("Datei soundso.txt,"r"); 
    falsch ist.
    Es fehlt vor dem Komma das schliessende Paar Anfuehrungsstriche.
    Es muss also so
    PHP-Code:
    $fp_neu fopen("Datei soundso.txt","r"); 
    aussehen.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  4. #4
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    Ich würde nach Möglichkeit auch auf Leerzeichen verzichten..... die könnten evtl. Probleme bereiten.
    Nimm statt dessen lieber das "_" Zeichen..... in Deinem Beispiel also Datei_soundso.txt.

    Gruss Dr Dau
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  5. #5
    Avatar von Spelmann
    Spelmann Spelmann ist offline Mitglied Brokat
    Registriert seit
    Jul 2005
    Ort
    Nähe Bremen
    Beiträge
    303
    @Dennis Wronka
    Danke für den Hinweis. War aber nur ein Flüchtigkeitsfehler im Beispiel, der nichts mit meinem eigentlichen Problem zu tun hat. Im Prinzip funktioniert das Skipt ja so wie ich es mir gedacht hab. Jedenfalls in der Miniversion hier. Nur im eigentlichen Projekt hakelts noch.

    @ Dr Dau.
    Das mit den Leerzeichen gefällt mir selbst nicht. Der User schreibt den Titel eines zu speichernden Artikels in ein Textfeld und die Textdatei soll unter diesem Titel abgespeichert werden.
    Gibt es denn vielleicht eine Möglichkeit Leerstellen automatisch mit Unterstrichen füllen zu lassen?

    Danke euch Beiden.
     

  6. #6
    Registriert seit
    Oct 2005
    Beiträge
    277
    Hi,
    die Möglichkeit gibt es:

    PHP-Code:
    $suchen[0] = " ";
    $ersetzen[0] = "_";
    $textneu str_ireplace($suchen$ersetzen$text); 
    schiese
     

  7. #7
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hmm, keine Ahnung ob es eleganter geht.
    Aber ich würde es mit str_replace() machen.
    Dazu würde ich den Titel in einem seperaten <input type="text"> angeben lassen.
    Allerdings würde ich str_replace() auch nur auf Datei-/Verzeichnisebene ansetzen..... in der Datei selbst lässt Du die Funktion also weg.

    Ich habe es jetzt nicht probiert, aber ich meine so müsste es funktionieren:
    PHP-Code:
    $fp_neu fopen(str_replace(" ""_"$_POST['titel']).".txt""r"); 
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  8. #8
    Avatar von Spelmann
    Spelmann Spelmann ist offline Mitglied Brokat
    Registriert seit
    Jul 2005
    Ort
    Nähe Bremen
    Beiträge
    303
    Klasse.
    das wird mir später weiterhelfen
    (Kämpfe momentan noch mit anderen Prolemen)
     

  9. #9
    Avatar von Spelmann
    Spelmann Spelmann ist offline Mitglied Brokat
    Registriert seit
    Jul 2005
    Ort
    Nähe Bremen
    Beiträge
    303
    Ich komme nicht weiter und bin so langsam echt am verzweifeln.
    Ich habe mein skript jetzt nochmal aufs nötigste zusammengestaucht um mein Problem zu schildern und hoffe sehr, daß mir jemand helfen kann.

    Ich habe also eine Datei navi.txt
    Ihr Inhalt ist:
    Code :
    1
    2
    3
    4
    
    navi=
    <a href='asfunction:load_file,texte/aktuelles/Das_ist_die_Datei_1'><u>Das_ist_die_Datei_1</u></a><br>
    <a href='asfunction:load_file,texte/aktuelles/Die_zweite_Datei'><u>Die_zweite_Datei</u></a><br>
    <a href='asfunction:load_file,texte/aktuelles/Datei_Nummer_3'><u>Datei_Nummer_3</u></a><br>

    Folgendes Skript funktioniert nur wenn $zeile[x] die jeweils letze Zeile in navi.txt anspricht.
    Im Augenblick also bei:
    PHP-Code:
    <?
    $navi 
    fopen("texte/aktuelles/navi.txt","r");
        while(!
    feof($navi))
        {
        
    $read=fgets($navi,1000);    
        
    $zeile[] = $read;
        }
        echo 
    strip_tags($zeile[3]);
        
    $artikel fopen("texte/aktuelles/".strip_tags($zeile[3]).".txt","r");
        
    $content fread($artikel,5000);
        echo 
    "<br>".$content;            
    ?>
    bei $zeile[0] bis $zeile[2] Bekomme ich die Fehlermeldung das die zu öffnende Datei nicht existiert.

    Warning: fopen(texte/aktuelles/Die_zweite_Datei.txt): failed to open stream: No such file or directory in /mnt/be2/03/753/00000012/htdocs/min_test/aktuelles/edit.php on line 9

    Wohl bemerkt, die Pfade zu den Dateien stimmen ja. Wenn ich aus navi.txt die letzte Zeile lösche wird das Sript nur noch mit der Variablen $zeile[2] fehlerlos ausgeführt und so weiter.

    Ich bitte um Hilfe.
     

  10. #10
    Avatar von Spelmann
    Spelmann Spelmann ist offline Mitglied Brokat
    Registriert seit
    Jul 2005
    Ort
    Nähe Bremen
    Beiträge
    303
    Mir wurde geholfen.
    Das Problem besteht darin, daß der Zeilenumbruch in navi.txt im Rückgabewert enthalten ist.
    Da es in der jeweils letzten Zeile keinen Umbruch gibt, gab nur es da keine Probleme.
    Also muß der fopen() Befehl so aussehen:
    PHP-Code:
    fopen("texte/aktuelles/".trim(strip_tags($zeile[3])).".txt","r"); 
     

Ähnliche Themen

  1. PHP5: fopen() ,dynamisches Pfad.
    Von PositivDenker im Forum PHP
    Antworten: 4
    Letzter Beitrag: 13.12.09, 20:32
  2. Antworten: 2
    Letzter Beitrag: 27.06.09, 20:22
  3. Invalid Argument bei fopen und UNC-Pfad
    Von TheVinc im Forum PHP
    Antworten: 1
    Letzter Beitrag: 24.11.06, 12:12
  4. vertracktes xsl namespace Problem
    Von Inspector im Forum XML Technologien
    Antworten: 0
    Letzter Beitrag: 01.09.05, 07:55
  5. fopen - Problem
    Von ultrakollega im Forum PHP
    Antworten: 5
    Letzter Beitrag: 31.10.03, 12:21