Ding der Unmöglichkeit!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ding der Unmöglichkeit!

    Hallo Gemeinde,

    ich verzweifel gleich.

    Ich habe Text in einem Editor, dieser wird exportiert und in eine DB geschrieben. Dabei sollen alle <p>-Tags durch <br> ersetzt werden.
    $content = eregi_replace("<P>", "<br>", $content);
    Kein Problem!

    Nun sollen aber alle <br>-Tags und Leerzeichen die am Anfang stehen, vor dem eigentlichen Content entfernt werden.
    $content = preg_replace("#^(<br>|&nbsp+#isxU", "", $content);
    Auch kein Problem!

    So lange nicht beides gleichzeitig vorkommt.

    Habe ich am Anfagn einer Strings ein <P> wird dieser beim export vor dem schreiben in die DB auch richtig in ein <br> gewandelt. Alerdings wird dieser dann nicht entfernt. Öffne ich nun wieder den Eintrag im Editor und sicher gleich wieder, dann werden die <br>-Tags auch ordentlich entfernt.

    Wie kann so was sein?
    Das Entfernen steht natürlich auch nach dem umwandeln. Ich habe auch um sicher zu gehen die Variablen umgenannt:
    $content = eregi_replace("<P>", "<br>", $content);
    $content2 = preg_replace("#^(<br>|&nbsp+#isxU", "", $content);
    Und dann $content2 in die DB geschrieben. Auch das blieb ohne Erfolg.

    Hier mal das ganze Umwandlungs-Listing. Vieeleicht baue ich ja an anderer Stelle einen Fehler und peils nicht.

    #-------------------------------------------------------------------------------------------------------------
    ### Font-Face entfernen ###
    $content = preg_replace("# face=\".*\"#isU", "", $content);
    $content = preg_replace("# face=.*>#isU", ">", $content);

    ### Font-Color entfernen, wenn nicht Linkfarben ###
    function replaceWord($word){
    if(!eregi(" color=#FF0001",$word ) && !eregi(" color=#DD0001",$word)){
    return "";
    } else {
    return $word;
    }
    }
    $content = preg_replace("# color=\#[a-fA-F0-9]{6}#esiS", "replaceWord(\"\\0\")", $content);

    ### Font-Style entfernen ###
    $content = preg_replace("#<font(.*)style=\".*\">#isU", "<font\\1>", $content);

    ### Font-Size entfernen ###
    $content = preg_replace("#<font(.*)size=.*>#isU", "<font\\1>", $content);

    ### Relevante Tags in kleinschrift umwandeln ###
    $content = eregi_replace("<strong>", "<b>", $content);
    $content = eregi_replace("</strong>", "</b>", $content);
    $content = eregi_replace("<A", "<a", $content);
    $content = eregi_replace("</A>", "</a>", $content);
    $content = eregi_replace("<BR>", "<br>", $content);
    $content = str_replace("<B>", "<b>", $content);
    $content = str_replace("</B>", "</b>", $content);
    $content = str_replace("<LI>", "<li>", $content);
    $content = str_replace("</LI>", "</li>", $content);
    $content = str_replace("<UL>", "<ul>", $content);
    $content = str_replace("</UL>", "</ul>", $content);
    $content = ereg_replace("<FONT", "<font", $content);
    $content = ereg_replace("</FONT>", "</font>", $content);

    ### Tags fuer Listen behandeln ###
    $content = eregi_replace("<P>", "<br>", $content);
    $content = eregi_replace("</P>", "", $content);
    $content = eregi_replace("\n<UL>", "<ul>", $content);
    $content = eregi_replace("\r<UL>", "<ul>", $content);
    $content = eregi_replace("</UL>\n", "</ul>", $content);
    $content = eregi_replace("</UL>\r", "</ul>", $content);
    $content = eregi_replace("\n<LI>", "<li>", $content);
    $content = eregi_replace("\r<LI>", "<li>", $content);
    $content = eregi_replace("</LI>\n", "</li>", $content);
    $content = eregi_replace("</LI>\r", "</li>", $content);

    ### Sonstige Tags behandeln ###
    $content = eregi_replace("hspace=0", "hspace=\"0\"", $content);
    $content = ereg_replace("<IMG ", "<img ", $content);
    $content = ereg_replace("SRC=", "src=", $content);
    $content = eregi_replace("target=_self", "target=\"_self\"", $content);
    $content = eregi_replace("target=_blank", "target=\"_blank\"", $content);
    $content = eregi_replace("</?u>", "", $content);

    ### Markierte Links erstellen ###
    preg_match_all("#<font color=\#FF0001>(.*)</font>#isU", $content, $matches2);

    $total2 = count($matches2[0]);
    for ($i=0; $i < $total2; $i++){
    $orig2 = $matches2[0][$i];
    $replace2 = $matches2[1][$i];
    $content = str_replace($orig2, '<a href="" target="_self">'.$replace2.'</a>' , $content);
    }

    ### Vorhandene Links - Fontmarkierung entfernen ###
    preg_match_all("#<font color=\#DD0001>(.*)</font>#isU", $content, $matches3);

    $total3 = count($matches3[0]);
    for ($i=0; $i < $total3; $i++){
    $orig3 = $matches3[0][$i];
    $replace3 = $matches3[1][$i];
    $content = str_replace($orig3, $replace3 , $content);
    }

    ### <a href wieder in richtige Reihenfolge setzen ###
    $content = ereg_replace("<a target=\"(.*)\" href=\"(.*)\">", "<a href=\"\\2\" target=\"\\1\">", $content);

    ### Bildpfad auf relativ setzen ###
    $content = str_replace($http_root2."admin/data/", "", $content);


    ### Leere <font>-Tags entfernen ###
    $content = eregi_replace("(<font *>|</font>)", "", $content);

    $content = preg_replace("#^(<br>|&nbsp+#isxU", "", $content);
    #-------------------------------------------------------------------------------------------------------------

    Danke,
    Andi

  • #2
    Kurz, knapp und bündig würde ich sagen - versuche es mal hiermit:

    PHP-Code:
    $content preg_replace ("#<p>#i","<br>",$content);
    $content preg_replace ("#^((<br(.*?)>| )+)#i","",$content); 
    Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

    Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

    Wer suchet, der findet: http://www.php-resource.de/forum/search.php
    Immer noch nichts? Dann frag!


    Mit freundlichen Grüßen,
    @4u

    Kommentar


    • #3
      machen wir gleich mal ne Einweisung ins Forum....

      ist net böse gemeint, aber benutz das nächste mal, wenn du code postest, die [Code ] und [PHP ] Tags.

      Zuletzt geändert von Moqui; 02.06.2003, 18:57.
      tata
      moqui

      [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

      Kommentar


      • #4
        Schade, Resultat unverändert!

        Kommentar


        • #5
          EDIT:


          verdammt ich hab was gepostet, was eigentlich in einen anderen Thread gehörte

          Ich trottl


          tata
          moqui

          [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

          Kommentar


          • #6
            Original geschrieben von Moqui
            machen wir gleich mal ne Einweisung ins Forum....

            ist net böse gemeint, aber benutz das nächste mal, wenn du code postest, die [Code ] und [PHP ] Tags.

            andik2000 hat schon 356 Beiträge, ich glaub, das er nicht mehr zu den Einsteigern des Forums gehört
            PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

            Kommentar


            • #7
              @ moqui = Oki doki

              Kommentar


              • #8
                nehmen wir mal a4us vorschlag und fügen zwischendrin ne ausgabe ein:
                PHP-Code:
                $content preg_replace ("#<p>#i","<br>",$content);
                echo 
                '<xmp>'.$content.'</xmp>';
                $content preg_replace ("#^((<br(.*?)>| )+)#i","",$content);
                echo 
                '<hr /><xmp>'.$content.'</xmp>'
                das erste ersetzen würd ich persönlich mit str_ireplace machen, is angeblich besser
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  @ Floriam: Aber ich benutz trotdem nie die [code]-Tags

                  Kommentar


                  • #10
                    ich hab grad 2 Threads verbunden....deswegen auch der schwachsinnige eintrag oben....

                    da war ein user mit 1 posts....

                    und dann sah ich den unformatierten code oben....
                    und den Satz von wegen und funktioniert immer noch nicht....

                    dann hab ich zuerst ne antwort auf den anderen Thread gepostet....

                    wenn ihrs net versteht auch egal...isn bissle verwirrend

                    egal...vergiist meine posts in dem thread!
                    tata
                    moqui

                    [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

                    Kommentar


                    • #11
                      Leute es sei euch gedankt!

                      mrhappiness' Vorschlag war die Lösung. Jetzt habe ich nämlich gesehen was ich im Quellcode nicht gesehen habe. Er spuckt mir ein Zeilenubruch (\n) als erstes aus. Darum greift auch das $content_=_preg_replace_("#^((<br(.*?)>| )+)#i","",$content); nicht, da er ja als erstes ein <br> oder " " erwartet.

                      So blind auf den Ohren

                      Also besten Dank und einen schönen Abend noch! Ich nach jetzt Feierabend

                      Der Andi

                      Kommentar


                      • #12
                        Dann erweitern wir doch einfach den preg_replace:

                        PHP-Code:
                        $content preg_replace ("#^((<br(.*?)>| |\n|\r)+)#i","",$content); 
                        Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

                        Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

                        Wer suchet, der findet: http://www.php-resource.de/forum/search.php
                        Immer noch nichts? Dann frag!


                        Mit freundlichen Grüßen,
                        @4u

                        Kommentar


                        • #13
                          Schon geschehen! Danke

                          Kommentar

                          Lädt...
                          X