Ankündigung

Einklappen
Keine Ankündigung bisher.

Anführungszeichen ersetzen

Einklappen

Neue Werbung 2019

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

  • Anführungszeichen ersetzen

    Ist vielleicht simpel, aber ich komm nicht drauf und find auch nix:

    Wenn ich ein Zeichen durch ein anderes ersetzen will, geht das normalerweise mit

    Code:
    str_replace("bla","blub",$string)
    Wenn ich aber ein Anführungszeichen durch ein anderes ersetzen will, müsste ich ja

    Code:
    str_replace(""","blub",$string)
    schreiben. Aber da meckert er mit mir rum.

    Wie ersetzt man also Anführungszeichen?

  • #2
    du musst (logischerweise) das " escapen, also ein \ davor setzen...
    http://www.silvercoding.de
    ------------
    ElePHPant Edit

    Kommentar


    • #3
      Danke, wie gesagt- manchmal sieht man den Wald vor lauter Bäumen nicht

      Kommentar


      • #4
        oder halt

        '"' und dann "'"

        Kommentar


        • #5
          Also so simpel isses wohl doch nicht, hatte mich schon gefreut:

          Wenn ich den String als Variable definiere, funzt es, weil ich da die Ausführungszeichen escapen kann:

          Code:
          $name = "Der \"weiße\" Riese";
          
          $array_1 = array("ä","ü","ß","ö","Ä","Ö","Ü","(",")","\""," ");
          $array_2 = array("ae","ue","ss","oe","ae","oe","ue","_","_","_","_");
          for($x=0;$x<11;$x++){
            $name= strtolower(str_replace($array_1[$x],$array_2[$x],$name));
          }
          echo $name;
          Da gibt er mir aus: der__weisse__riese

          Aber wenn ein User den Text <Der "weiße" Riese> über ein Formularfeld sendet, gehts nicht:
          Code:
          $name = $_POST['name'];
          
          $array_1 = array("ä","ü","ß","ö","Ä","Ö","Ü","(",")","\""," ");
          $array_2 = array("ae","ue","ss","oe","ae","oe","ue","_","_","_","_");
          for($x=0;$x<11;$x++){
            $name= strtolower(str_replace($array_1[$x],$array_2[$x],$name));
          }
          echo $name;
          Da gibt er mir aus: der_\_weisse\__riese

          Und da liegt mein Problem.

          Kommentar


          • #6
            Mhm, du brauchst die for() Schleife nicht. str_replace() kann auch mit arrays arbeiten..
            PHP-Code:
            <?php
            $name 
            $_POST['name']; 
            $array_1 = array("ä","ü","ß","ö","Ä","Ö","Ü","(",")","\""," "); 
            $array_2 = array("ae","ue","ss","oe","ae","oe","ue","_","_","_","_"); 

            $name strtolowerstr_replace($array1$array2$name) );

            echo 
            $name;
            ?>

            Kommentar


            • #7
              $name = strtolower( str_replace($array1, $array2, $name) );
              EDIT:

              Na hoffentlich kommt nicht als Wort mal »Öl« oder Name »Ötzi« vor
              Bezüglich strtolower() ...

              Kommentar

              Lädt...
              X