Buchstaben aus String einzeln behandeln!?

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

  • Buchstaben aus String einzeln behandeln!?

    Hi,

    wie kann ich die Buchstaben aus einem String in ein Array bekommen, das z.B. aus 'Hallo' $str[0]=H;$str[1]=a;$str[2]=l;$str[3]=l;$str[4]=o; wird ?

    MfG

    MFG

  • #2
    also ich kann schon so auf die Buchstaben zugreifen, aber den String leider nicht in einer foreach schleife benutzen ...

    Kommentar


    • #3
      Original geschrieben von MFG
      also ich kann schon so auf die Buchstaben zugreifen, aber den String leider nicht in einer foreach schleife benutzen ...
      PHP-Code:
      for ($idx=0$idx<strlen($str); $idx++) {
        echo 
      $str[$idx]."<br>";

      ??
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        Lösung gefunden ...

        Also ich hab das ganze jetzt anders gelöst,

        wen es interessiert, ich habe ein ver-/entschlüsselungs script für caesar code geschrieben.

        Ich werde das Script demnächst wo uploaden, so das man es benutzen kann... ist ganz nett für alle 10. Klasse, die Mathe Wahl haben ...

        Kommentar


        • #5
          Cäsar-Code? War das das mit der Papierrolle um den Bleistift? Oder eher rot13?
          Naja, ich freu mich auf den Schnipsel; der wird mein Gedächtnis wieder auffrischen.
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar


          • #6
            @Titus: Die Caesar Verschlüsselung verschiebt die Buchstaben der Nachricht einfach nur.

            Aus "ABC" wird beispielsweise "BCD" oder "DEF".
            Je nachdem, wie weit man verschiebt.

            Hiermit ver- und entschlüsselt man nach der Caesar Methode.
            Man darf nur die Zeichen nicht zu sehr verschieben.
            PHP-Code:
            $offen "ABCZ"// Unverschlüsselter Text
            $differenz 1// Anzahl, um die die Buchstaben verschoben werden.


            echo $offen;
            echo 
            "<br>";
            $secret caesar($offen,$differenz);
            echo 
            $secret;
            echo 
            "<br>";
            echo 
            undo_caesar($secret,$differenz);




            function 
            caesar($string,$differenz=1)
            {
                
            $string strtoupper($string);
                
            $abc "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                for(
            $i=0;$i<strlen($string);$i++)
                {
                    if(
            strstr($abc,$string[$i]))
                    {
                        
            $secret .= chr(((ord($string[$i])-64) % 26)+(64+$differenz));
                    }
                    else
                    {
                        
            $secret .= $string[$i];
                    }
                }
                return 
            $secret;
            }

            function 
            undo_caesar($string,$differenz=1)
            {
                
            $string strtoupper($string);
                
            $abc "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                for(
            $i=0;$i<strlen($string);$i++)
                {
                    if(
            strstr($abc,$string[$i]))
                    {
                        
            $offen .= chr(((ord($string[$i])+(65-$differenz)) % 26)+(65));
                    }
                    else
                    {
                        
            $offen .= $string[$i];
                    }
                }
                return 
            $offen;

            Zuletzt geändert von Troublegum; 13.04.2002, 17:42.
            [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
            [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
            [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

            © Harald Schmidt

            Kommentar


            • #7
              Original geschrieben von Troublegum
              @Titus: Die Caesar Verschlüsselung verschiebt die Buchstaben der Nachricht einfach nur.
              aha - also rotn
              mein Sport: mein Frühstück: meine Arbeit:

              Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

              Kommentar


              • #8
                Also ich habe das ganze einfach mal ganz ´plain runter programmiert ... wie gesagt, ich mache das gerade in der schule, und da wollte ich mal schaun, ob meine php Kenntnisse für sowas ausreichen ...

                PHP-Code:
                echo "<table border=\"1\" bordercolor=\"white\" cellpadding=\"2\" align=center>
                             <tr bordercolor=\"#666666\" bgcolor=\"#EEEEEE\">
                                 <td><font face=\"lucida console\"><b>Caesar Code ver-/entschlüsseln</font></td>
                             </tr>
                             <tr>
                                 <td><p align=\"center\"><font face=\"arial\">[<a href=\"?a=ver\">verschlüsseln</a>] [<a href=\"?a=ent\">entschlüsseln</a>]"
                ;
                ############################################
                ###                                      ###
                ###  CAESAR CODE CODIEREN / DECODIEREN   ###
                ###                                      ###
                ############################################

                switch($a){
                    case 
                ent:
                         if(empty(
                $query)){
                             echo 
                "<table border=\"1\" bordercolor=\"white\" cellpadding=\"2\">
                             <tr bordercolor=\"#666666\" bgcolor=\"#EEEEEE\">
                                 <td><font face=\"lucida console\">Zu entschlüsselnder Text</font></td>
                             </tr><form action=\"?
                $QUERY_STRING\" method=\"POST\">
                             <tr>
                                 <td><textarea rows=\"10\" cols=\"40\" name=\"query\"></textarea></td>
                             </tr>
                             <tr>
                                 <td><input type=\"submit\" value=\"decode\"></td>
                             </tr></form></table>"
                ;
                             }
                         else
                             {
                             
                // Alphabet vorbereiten
                             
                $alphabet=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
                             
                // Layout beginn
                             
                echo "<table border=\"1\" bordercolor=\"white\" cellpadding=\"2\">
                             <tr bordercolor=\"#666666\" bgcolor=\"#EEEEEE\">
                                 <td><font face=\"lucida console\">Nummer</font></td>
                                 <td><font face=\"lucida console\">verschlüsselt</font></td>
                                 <td><font face=\"lucida console\">schema</font></td>
                                 <td><font face=\"lucida console\">entschlüsselt</font></td>"
                ;

                             
                //Entschlüsselung beginnt
                             
                while($idx<25){
                                 
                $idx++;
                                 
                $idy="0";
                                 while(
                $idy<26){
                                     
                $idt=$idy+$idx;
                                     
                $alphabet_now[]=$alphabet[$idt];
                                     
                $idy++;
                                     }
                                 
                $idz="0";$s=$query;
                             
                // Ausgabe
                             
                echo "<tr>
                                  <td><p align=right><font face=\"lucida console\"><b>
                $idx.</b></td>
                                  <td><p align=center><font face=\"lucida console\">
                $query</td>";
                             
                // Umwandeln in Zahlen
                             
                foreach($alphabet_now as $b){
                                 
                $s=eregi_replace($b,"$idz,",$s);
                                 if(
                $idz<1){echo "
                                  <td><p align=center><font face=\"lucida console\">"
                .$alphabet[$idz]." => ".$b."</font></td>
                                  <td><p align=center><font face=\"lucida console\">"
                ;}
                                 
                $idz++;
                                 }
                             
                // Umwandeln in Buchstaben
                             
                $arry=explode(",",$s);
                             foreach(
                $arry as $bu){
                             echo 
                $alphabet[$bu];
                             }
                             echo 
                "        </td>
                              </tr>
                             <tr bgcolor=\"#666666\">
                                 <td height=\"3\" colspan=\"4\"></td>
                             </tr>
                              "
                ;
                              
                $alphabet_now="";
                              }
                              echo 
                "</table>";
                         }
                         break;
                    case 
                ver:
                         if(empty(
                $query)){
                             echo 
                "<table border=\"1\" bordercolor=\"white\" cellpadding=\"2\">
                             <tr bordercolor=\"#666666\" bgcolor=\"#EEEEEE\">
                                 <td><font face=\"lucida console\">Zu verschlüsselnder Text</font></td>
                             </tr><form action=\"?
                $QUERY_STRING\" method=\"POST\">
                             <tr>
                                 <td><font face=\"lucida console\"><textarea rows=\"10\" cols=\"40\" name=\"query\"></textarea><br><small>Es sind nur Buchstaben von A-Z und a-z erlaubt, Leerzeichen werden gelöscht. Andere zeichen können den verschlüsselten Text unvollständig machen.</td>
                             </tr>
                             <tr>
                                 <td><font face=\"lucida console\">A => <select name=\"auf\">
                                 <option value=\"0\">a
                                 <option value=\"1\">b
                                 <option value=\"2\">c
                                 <option value=\"3\">d
                                 <option value=\"4\">e
                                 <option value=\"5\">f
                                 <option value=\"6\">g
                                 <option value=\"7\">h
                                 <option value=\"8\">i
                                 <option value=\"9\">j
                                 <option value=\"10\">k
                                 <option value=\"11\">l
                                 <option value=\"12\">m
                                 <option value=\"13\">n
                                 <option value=\"14\">o
                                 <option value=\"15\">p
                                 <option value=\"16\">q
                                 <option value=\"17\">r
                                 <option value=\"18\">s
                                 <option value=\"19\">t
                                 <option value=\"20\">u
                                 <option value=\"21\">v
                                 <option value=\"22\">w
                                 <option value=\"23\">x
                                 <option value=\"24\">y
                                 <option value=\"25\">z
                                 </select> <input type=\"submit\" value=\"encode\"></td>
                             </tr></form></table>"
                ;
                             }
                         else
                             {
                             
                $query=eregi_replace(" ","",$query);
                             
                // Alphabet vorbereiten
                             
                $alphabet=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
                             
                // Layout beginn
                             
                echo "<table border=\"1\" bordercolor=\"white\" cellpadding=\"2\">
                             <tr bordercolor=\"#666666\" bgcolor=\"#EEEEEE\">
                                 <td><font face=\"lucida console\">entschlüsselt</font></td>
                                 <td><font face=\"lucida console\">schema</font></td>
                                 <td><font face=\"lucida console\">verschlüsselt</font></td>
                             </tr>
                             <tr>
                                 <td><font face=\"lucida console\">
                $query</font></td>
                                 <td><font face=\"lucida console\">A => "
                ;
                             
                // Verschiebung ermitteln
                             
                foreach($alphabet as $idx=>$b){
                                 if(
                $idx==$auf){$verschiebung=$idx;}
                                 }
                $b="";
                             
                $idy="0";
                             while(
                $idy<26){
                                 
                $idt=$idy+$verschiebung;
                                 
                $alphabet_now[]=$alphabet[$idt];
                                 
                $idy++;
                                 }
                             echo 
                $alphabet_now[0];
                             
                $s=$query;
                             
                $idz="0";
                             foreach(
                $alphabet as $b){
                                 
                $s=eregi_replace($b,"$idz,",$s);
                                 
                $idz++;
                                 }
                             echo 
                "</font></td><td><font face=\"lucida console\">";
                             
                // Umwandeln in Buchstaben
                             
                $arry=explode(",",$s);
                             foreach(
                $arry as $bu){
                             echo 
                $alphabet_now[$bu];
                             }
                             echo 
                "</td></tr></table>";
                         }
                         break;
                    }
                echo 
                "</table>"
                Und jetzt fragt bitte nicht, warum ich das in zahlen umwandeln lasse ...

                Kommentar

                Lädt...
                X