Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - cast da int a carattere
Forum - PHP - cast da int a carattere

Avatar
alek777 (Normal User)
Rookie


Messaggi: 25
Iscritto: 18/09/2007

Segnala al moderatore
Postato alle 20:39
Martedì, 18/09/2007
:-| devo effettuare un cast da int a char perchè voglio generare una stringa di lettere random da usare per verificare se il commento del mio post è veramente scritto da un umano e non da un bot o cose simili.

il problema è che non effettua il cast, restano i numeri.

ecco il codice

Codice sorgente - presumibilmente PHP

  1. <?PHP
  2.   $str="";
  3.   for ($i=0;$i<=5;$i++){
  4.       $n=rand (97, 122);
  5.       $str=$str.(string)$n;
  6.   }
  7.   echo $str;
  8. ?>



cosa sbaglio?


http:://shadescoding.altervista.org il mio blog!
PM Quote
Avatar
alek777 (Normal User)
Rookie


Messaggi: 25
Iscritto: 18/09/2007

Segnala al moderatore
Postato alle 21:07
Martedì, 18/09/2007
ho pensato a questo ma evito il problema...


Codice sorgente - presumibilmente PHP

  1. <?PHP
  2.   $str="";
  3.   $arr=array ("a","b","c","d","e","f","g","h",
  4. "i","l","m","n","o","p","q","r","s","t","u","v",
  5. "z","x","y","k","j","w","1","2","3","4","5","6","7","8","9","0");
  6.   for ($i=0;$i<=5;$i++){
  7.       $n=rand (0, 35);
  8.       $str=$str.$arr[$n];
  9.   }
  10.   echo $str;
  11. ?>


Ultima modifica effettuata da alek777 il 24/09/2007 alle 2:02


http:://shadescoding.altervista.org il mio blog!
PM Quote
Avatar
Shutdown (Founder Member)
Guru


Messaggi: 1212
Iscritto: 10/09/2005

Segnala al moderatore
Postato alle 23:14
Martedì, 18/09/2007
Codice sorgente - presumibilmente Plain Text

  1. <?PHP
  2. $str = "";
  3.  
  4. for( $i=0; $i<=5; $i++ ) {
  5.     $n = rand(97, 122);
  6.     $str .= (char) $n;
  7. }
  8.  
  9. echo $str;
  10. ?>



Non l'ho testato, quindi non so se funziona. :-|
Fammi sapere se è corretto, altrimenti ci do
un'occhiata con calma.

Ultima modifica effettuata da Shutdown il 18/09/2007 alle 23:17


1 + 1 = 10
PM Quote
Avatar
alek777 (Normal User)
Rookie


Messaggi: 25
Iscritto: 18/09/2007

Segnala al moderatore
Postato alle 0:15
Mercoledì, 19/09/2007
ho provato anche così ma non va


http:://shadescoding.altervista.org il mio blog!
PM Quote
Avatar
Shutdown (Founder Member)
Guru


Messaggi: 1212
Iscritto: 10/09/2005

Segnala al moderatore
Postato alle 13:57
Mercoledì, 19/09/2007
Okay...
Appena ho due secondi riscrivo / testo
il codice! :k:


1 + 1 = 10
PM Quote
Avatar
radio (Ex-Member)
Expert


Messaggi: 327
Iscritto: 03/03/2005

Segnala al moderatore
Postato alle 22:03
Venerdì, 21/09/2007
Codice sorgente - presumibilmente PHP

  1. <?php
  2. header("Content-type: text/plain");     // Non so se ti serve... Non credo
  3. $n_char=15;             // Numero caratteri da generare
  4.  
  5. $str="";                // Così evito il Notice di variabile non definita su $str [ma basterebbe sopprimere la visualizzazione degli errori di livello notice ;) )
  6. for ($i=0; $i<=$n_char; $i++)
  7.         {
  8.         $rnd_char= chr(rand(65, 122)); // Il carattere casuale è chr ovvero carattere da codice ascii e il codice asci è dato da rand, l'intervallo sceglilo tu, gaurda qui http://www.asciitable.com/
  9.        
  10. //      echo "Carattere $i => $rnd_char [".gettype($rnd_char)."]\n"; // se proprio vuoi controllare decommenta :)
  11.         $str .= $rnd_char;
  12.         }
  13.  
  14. // scrive la stringa
  15. print($str);
  16. ?>


O, più semplicemente
Codice sorgente - presumibilmente PHP

  1. <?php
  2. $str="";
  3. for ($i=0; $i<=15; $i++)
  4.         $str .= chr(rand(65, 122));
  5. print($str);
  6. ?>



Il codice si spiega da se, comunque gli altri erano errati perchè nella conversione tra tipi il php, da numero a stringa fa corrispodnere la stringa che rappresenta quel numero, e non il codice ascii del carattere: tipo $int=022 $foo=(string)$int; print($foo); restituisce "022".

per il resto il mio codice "si commenta da sè" : basta usare chr() LOL


______

Radio.
PM Quote
Avatar
Shutdown (Founder Member)
Guru


Messaggi: 1212
Iscritto: 10/09/2005

Segnala al moderatore
Postato alle 1:09
Sabato, 22/09/2007
radio non so come farei senza di te! :rotfl:
Menomale che mi aiuti tu a rispondere, altrimenti... :D
Grande! :k:


1 + 1 = 10
PM Quote
Avatar
alek777 (Normal User)
Rookie


Messaggi: 25
Iscritto: 18/09/2007

Segnala al moderatore
Postato alle 2:18
Sabato, 22/09/2007
WOW grande :D


http:://shadescoding.altervista.org il mio blog!
PM Quote
Avatar
Shutdown (Founder Member)
Guru


Messaggi: 1212
Iscritto: 10/09/2005

Segnala al moderatore
Postato alle 0:57
Lunedì, 24/09/2007
Eh Eh... io l'avevo detto! :rotfl:


1 + 1 = 10
PM Quote