problem mit unsichtbaren Zeilenumbruch

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

  • problem mit unsichtbaren Zeilenumbruch

    hallo erstma,

    ich hab fogendes Problem:

    ich les daten aus einer mysql tatenbank und vergleiche lösche ,verändere sie.
    die datenbank wird aber auch zb. mit excell dabellen gefüllt was zu manchmal formatierungsschwierigkeiten führt. d.h. in der datenbank
    stehnen vor dem eintrag ein zeilenumbruch oder ähnliches was aber wenn ich diesen datensatz ausgebe in der ausgabe nicht zu sehen ist.
    nun will ich diese unsichtbaren breakes loswerden.
    mit dem folgenden code hab ich es versucht ...klappt aber nicht

    PHP-Code:
    while ($rou=mysql_fetch_assoc($ergebnis1))
        {
            if(
    substr($rou["doc_name"],0,2) == "\r\n"// prüft ob denn ein break davor ist
                
    {
                    echo 
    "SPLASH > > > > > > > > > > >";
                    
    var_dump($rou["doc_name"]);
                }
                
    $rou["doc_name"]=str_replace("\n","",$rou["doc_name"]);  
            
            
    $bs_doc_name_and_id[$rou["id"]]=str_replace("\n","",$rou["doc_name"]); 
            
    $bs_doc_name[]=$rou["doc_name"];  
            
    $bs_version[]=$rou["version"];
        } 
    fakt ist das er ein "/n" findet und wenn ich es mit sr_replace wegmachen will sagt er mir dann auch das es weg ist nur wenn ich
    dann diesen datensatz wo so ein /n drin war mit den wert der in dem datensatz ist vergleiche sagt er mir das es nicht das selbe ist ...


    noch zu erwähne wäre eventuell dass ich "doc_name" in ein assoziatives array speichere wo der index zu dem wert die id des wertes in der db ist.

    wenn ich die if abfrage und das darauffolgende st_replace wegmache und nur zum schluss das $bs_doc_name_and_id.... mit
    srt_replace mache(wie es auch drin steht) dann verschiebt sich die reihenfolge der werte im array um eins. d.h die ids passen nicht
    mehr zu den werten.

    danke schonmal für die mühe bin gerade ein wenig ratlos.
    mfg simon
    Zuletzt geändert von goTAN; 01.03.2006, 14:21.

  • #2
    extremes scrollen nötig! unschön!
    Signatur-Text ...

    Kommentar


    • #3
      mach mal das hier:

      $rou["doc_name"]=str_replace("[COLOR=red]\r[/COLOR]\n","",$rou["doc_name"]);

      Kommentar


      • #4
        Geht's denn nur um Zeilenschläge, die am Ende des Strings stehen ?
        Wenn ja, dann könnte dir
        PHP-Code:
        $string trim($string); 
        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          danke für die schnelle antwort.
          @dani_o, sry im editor hat man das nicht gesehn und bei meinem 24 zoll monitor erst recht nicht.

          @Daniela supi viele datensätze erkennt er jetz nur bei einem klappt es nicht. man siieht da auch kein break unter phpMyAdmin in der db aber irgendwas muss da sein... event. ein leerzeichen nach dem eintrag? wenn ja wie bekomm ich das weg?

          danke nochma

          Kommentar


          • #6
            Original geschrieben von jahlives
            Geht's denn nur um Zeilenschläge, die am Ende des Strings stehen ?
            Wenn ja, dann könnte dir
            PHP-Code:
            $string trim($string); 
            Gruss

            tobi
            nein es geht darum dass ich die werte nicht miteinander vergleichen kann wenn irgendwo ein verteckes \n oder\r drinsteckt.
            bsp:

            aus der datenbank: \n bla.php (\n ist "unsichtbar")

            und ich will alle einträge die bla.php haben löschen. den obigen löscht er jetz aber nicht. das ist konkret mein problem.
            Zuletzt geändert von goTAN; 01.03.2006, 14:47.

            Kommentar


            • #7
              Dann mach
              PHP-Code:
              $string trim($string); 
              doch bevor du $string in die DB einträgst. Also ich würde Daten die \r\n oder \n enthalten bestimmt nicht in meine DB reinlassen.

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Original geschrieben von goTAN
                @Daniela supi viele datensätze erkennt er jetz nur bei einem klappt es nicht. man siieht da auch kein break unter phpMyAdmin in der db aber irgendwas muss da sein... event. ein leerzeichen nach dem eintrag? wenn ja wie bekomm ich das weg?

                danke nochma
                np, zumindest wäre das schon mal geklärt.

                und wenn du zu dem \r\n noch nen einzelnes \n machst? oder handelt es sich evtl um ein tab? gib mal die Daten aus und schau dir an was er macht.

                Offtopic: du kannst auch nen 24" Monitor mit 800x600 fahren *gg*

                Kommentar


                • #9
                  hm wie frag ich einzeln noch ein \n ode ein \t ab? oder muss ich dann noch mal extra ein neues str_replace machen?
                  leerzeichen geht nicht oder?

                  mfg

                  offtopic: wo ist dann der sinn von einem großen monitor?
                  Zuletzt geändert von goTAN; 01.03.2006, 15:09.

                  Kommentar


                  • #10
                    Also dann eben so
                    PHP-Code:
                    $string str_replace(array('\r\n','\n','\t'),'',$string
                    die Fkt nimmt auch arrays als argumente.

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      danke jahlives,
                      hm da ist wieder die sache mit " und ' ...
                      wann " und wann ' jedenfalls wenn ich alle " durch ' ersetze findet er garnix.

                      habs jetz so gemacht :
                      PHP-Code:
                      $rou["doc_name"]=str_replace(array("\r\n","\n","\r","\t"),"",$rou["doc_name"]); 
                      trotzdem ist da noch immer dieser eine Wert.... was kann da noch sein???

                      mfg simon
                      Zuletzt geändert von goTAN; 02.03.2006, 15:56.

                      Kommentar


                      • #12
                        Warum gehst du in so einem Falle nicht mal logisch vor - anstatt einfach nur draufloszuraten ...?

                        Schau dir mit ord() den ASCII-Wert des störenden Zeichens an, bzw. aller, wenn du seine Position nicht kennst. Und dann ziehe daraus endlich mal vernünftige Schlüsse.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Original geschrieben von wahsaga
                          Warum gehst du in so einem Falle nicht mal logisch vor - anstatt einfach nur draufloszuraten ...?

                          Schau dir mit ord() den ASCII-Wert des störenden Zeichens an, bzw. aller, wenn du seine Position nicht kennst. Und dann ziehe daraus endlich mal vernünftige Schlüsse.
                          sorry kannte ord() nicht...

                          ord() sagt mir das 2 0 ( also NUL) am ende des strings stehn...

                          aber irgendwie bekomm ich die nicht weg...

                          habs so versucht:

                          PHP-Code:
                          while($row3 mysql_fetch_assoc($ergebnis1))

                          {

                              echo 
                          $row3["doc_name"];  //
                              
                          echo "<br>";
                              echo 
                          ord($row3["doc_name"]);
                              
                              
                          $row3["doc_name"]=str_replace("\0","",$row3["doc_name"]);
                              
                              for(
                          $x=0;$x<20;$x++)
                              {
                              echo 
                          ord(substr($row3["doc_name"], $x))."|"."<br>";
                              

                              }

                          mit \00 und chr(0) hab ichs auch schon versucht.. ohne erfolg

                          Kommentar


                          • #14
                            http://www.a-m-i.de/tips/strings/strings.php#basics

                            aber zeig bitte die ausgabe dieses skriptes.

                            Kommentar


                            • #15
                              das is die exakte ausgabe:
                              user_suche.inc.php
                              117117|
                              115|
                              101|
                              114|
                              95|
                              115|
                              117|
                              99|
                              104|
                              101|
                              46|
                              105|
                              110|
                              99|
                              46|
                              112|
                              104|
                              112|
                              0|
                              0|

                              Kommentar

                              Lädt...
                              X