Sehr mysteriöses Problem (Zauberstring)!

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

  • Sehr mysteriöses Problem (Zauberstring)!

    Ich habe hier einen Zauberstring mit Namen $evilstring.


    PHP-Code:
    $evilstring 'X';
    var_dump($evilstring); //ergibt string(1) "X"
    $string 'Hallo';
    echo 
    $string// ergibt "Hallo"
    echo $string$evilstring// ergibt Zeilenumbruch + "HalloX" 
    Habe mich im Hexeditor versichert, dass am Anfang ein Zeilenumbruch steht (0D0A).
    Das Problem ist völlig unerwartet in einem schon lange funktionierenden generierten Javascript aufgetreten. Dort definiere ich einige Strings dynamisch, also steht da z. B.:


    PHP-Code:
    alert("<?php echo getString('ROFL'); ?>");
    Wie man hier sieht, gebe ich den String (mein $evilstring) mit einer Funktion zurück, aber wie gesagt, zeigt var_dump davon, dass er eben nicht mit einem Zeilenumbruch anfängt.

    Trotzdem steht in dem JS dann immer ein Zeilenumbruch. Hängt man den $evilstring an einen anderen String, beginnt das Ergebnis auch immer mit einem Zeilenumbruch. Das versteh ich einfach nicht.

    Habt ihr Ideen?
    Zuletzt geändert von CadEx; 06.07.2006, 14:12.
    PHP-Code:
    function verrecke_elend()
    {
        die(
    'Aaargh!');


  • #2
    zeig einfach deine function getString.
    vermutlich liegt der problem in doppeltem echo
    Slava
    bituniverse.com

    Kommentar


    • #3
      Das kann ich ausschließen.
      Da es sich um Code in meiner Firma handelt, darf ich die Funktion nicht veröffentlichen.
      Aber sie liefert eigentlich nur den Wert eines Arrays bei dem übergebenen assoziativen Schlüssel zurück oder "//UNDEFINED//, wenn er nicht gefunden wurde.

      Das Problem ist wie gesagt plötzlich aufgetreten und an der Funktion wurde auch nix gemacht. Kein doppeltes echo, sondern nur ein return $arr[$index];
      PHP-Code:
      function verrecke_elend()
      {
          die(
      'Aaargh!');

      Kommentar


      • #4
        Original geschrieben von CadEx
        Da es sich um Code in meiner Firma handelt, darf ich die Funktion nicht veröffentlichen.
        Dann kann man dir kaum helfen.
        Kein doppeltes echo, sondern nur ein return $arr[$index];
        Schleife es nochmal durch trim() und erzähl den Leuten in deiner Firma, es habe sich immernoch nichts geändert, Fehler kommen, Fehler gehen.

        Kommentar


        • #5
          dann zeig mir weinigsten ein Beispiel wo es wirklich nicht funktioniert!!!
          Slava
          bituniverse.com

          Kommentar


          • #6
            Original geschrieben von CadEx
            Da es sich um Code in meiner Firma handelt, darf ich die Funktion nicht veröffentlichen.
            Dann könnt ihr das Problem ja auch gerne innerhalb eurer Firma lösen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Re: Sehr mysteriöses Problem (Zauberstring)!

              Original geschrieben von CadEx
              Habt ihr Ideen?
              Wird wohl der dynamische Javagenerator sowas machen, oder ein prettyprinter, oder ein templatesystem. Dass es vom php kommt, glaube ich nicht. Es ist möglich, dass Du nicht vollen Zugang zum firmeninternen Code hast oder so und deswegen nicht vorwärts kommst.

              CRLF sind grundsätzlich im HTML irrelevant bzw. whitespace. Ein CRLF (nicht \n\r) im alert-Argument von Javascript machte bei mir dass der Alert-Aufruf nicht funktionierte.

              Kommentar


              • #8
                Re: Re: Sehr mysteriöses Problem (Zauberstring)!

                Original geschrieben von tcpip
                Ein CRLF (nicht \n\r) im alert-Argument von Javascript machte bei mir dass der Alert-Aufruf nicht funktionierte.
                Natürlich - weil Javascript zeilengrenzenüberschreitende Literale nicht akzeptiert.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  @topicstarter
                  Ergibt das true oder false ?
                  PHP-Code:
                  if(strlen($string) == strlen(trim($string))){
                      echo 
                  'True';
                  }else{
                      echo 
                  'False';

                  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

                  Lädt...
                  X