Newsgroup: it.comp.www.php
Titolo: Accedere ai singoli caratteri di una stringa

Ciao a tutti,
Provango dal c ed ho avutu un piccolo problema con il php.
Ho scritto il seguente codice
for($i=0;$i<strlen($numero);$i++){
   if($numero[$i]=='1')
       print("<img src=\"imma/1.jpg\">");
   if($numero[$i]=='2')
       print("<img src=\"imma/2.jpg\">");
   if($numero[$i]=='3')
       print("<img src=\"imma/3.jpg\">");
}
$numero e' una stringa con all'interno il valore attuale del conteggio.
In C era possibile confrontare il singolo carattere della stringa...ma in
php sembra non funzionare. Dove sbaglio?
GRazie 1000
Aragorn
--
FAQ non ufficiali K7S5A:
http://www.holyword.it/aragorn/ecs_faq.htm

 php sembra non funzionare. Dove sbaglio?
-----------------------------------------------start qui
<?PHP
  $vedi = "faue";  #se e' di piu ?
  $numero =  strlen($vedi);
  echo "e' lungo $numero";
   if($numero==1)
       echo "<img src=\"imma/1.jpg\">";
   if($numero==2)
       echo "<img src=\"imma/2.jpg\">";
   if($numero==3)
       echo "<img src=\"imma/3.jpg\">";
   if($numero >= 4)
       echo "<img src=\"imma/4.jpg\">";
?>
--------------------------end qui


 > }
Ciao,
Mi sono effettivamente spiegato malissimo.Ora cerchero' di essere piu'
chiaro. Praticamente questa e' la seconda parte di un programma che gestisce
la visualizzazione di un contatore per pagine.  Numero e' una stringa che
contiene l'attuale numero di accessi. Poiche' in C scrivendo numero[0] si
accede al primo elemento dell'array mi chiedevo se funzionava cosi' anche in
PHP.
In pratica
$numero="125";
a questo punto volevo scorrere cella per cella l'array e visualizzare la
jpeg relativa
for($i=0;$i<strlen($numero);$i++){
    if($numero[$i]=='1')
     print("<img src=\"imma/1.jpg\">");
  if($numero[$i]=='2')
        print("<img src=\"imma/2.jpg\">");
  if($numero[$i]=='3')
       print("<img src=\"imma/3.jpg\">");
}
In pratica il controllo nell'IF dovrebbe dire (almeno in C e' cosi')
if($numero[$i]=='3')
 print("<img src=\"imma/3.jpg\">");
se il valore nella posizione i dell'array e' uguale al carattere 3 allora
piazza l'immagine.
Il tutto pero' non funziona in php...mi sa che ci sono alcune differenze ma
non riesco a capire dove sbaglio ;)
GRazie 1000 per la risposta precedente


 
prova
for ($i=0;$i<strlen($numero);$i++) print "<img 
src=\"imma/".$numero{$i}.".jpg\">";
ciao
Alesi_27

Ciao , grazie per l'aiuto, ma anche cosi' non funziona. Sembra che non
riesca a leggere il valore all'interno della stringa. Posto il codice
completo
<?  /* Inizio Script  per il contatore */
             if (!file_exists("contatore.dat")) {
                    $file=fopen("contatore.dat","w");
                    $numero=0; }
             else {
                    $file=fopen("contatore.dat","r+");
                    $numero=fgets($file,20);
                    fseek($file, 0); /* risposta il puntatore all'inizio del
file  senza doverlo chiudere e riaprire */ }
            $numero++;
            echo "$numero";   /* Visualizza il numero  in cifre normali */
            fputs($file,$numero); /* riscrive il valore nel file */
            fclose($file);
   for($i=0;$i<strlen($numero);$i++){
        if ($numero[$i]==0)
                      print ("<img src=\"imma/0.jpg\">");
        if ($numero[$i]==1)
             print ("<img src=\"imma/1.jpg\">");
        if ($numero[$i]==2)
          print ("<img src=\"imma/2.jpg\">");
        if ($numero[$i]==3)
          print ("<img src=\"imma/3.jpg\">");
        if ($numero[$i]==4)
          print ("<img src=\"imma/4.jpg\">");
        if ($numero[$i]==5)
          print ("<img src=\"imma/5.jpg\">");
        if ($numero[$i]==6)
          print ("<img src=\"imma/6.jpg\">");
        if ($numero[$i]==7)
          print ("<img src=\"imma/7.jpg\">");
        if ($numero[$i]==8)
          print ("<img src=\"imma/8.jpg\">");
        if ($numero[$i]==9)
          print ("<img src=\"imma/9.jpg\">");
   }
/* Fine dello script per il contatore da aggiungere le sessioni */ ?>
Ma e' cosi' difficile leggere all'interno di una stringa in php???
Ciao e grazie


 Ma e' cosi' difficile leggere all'interno di una stringa in php???
no e' solo che in php le funzioni sono diverse, ne ha di sue
non ti devi scrivere tutti il codice per fare 2 + 2
funziona lo ho provato
fai un bel copia e incolla


GRazie mille ! Solo una curiosita', ma le {$i } che effetti hanno sul
codice?
Ciiips e GRazie 1000


C'e' ancora qualcosa che non va pero', cosi' facendo le immagii che si vanno
ad inserire sono del tipo
http://127.0.0.1/imma/.jpg
In pratica salta il valore di $numero[$i]
Strano
Ciao e grazie per l'aiuto



     $numer = "$numero";
for($i=0;$i<strlen($numer);$i++){
    echo "img src=\"imma/".$numer{$i}.".jpg\">";
}
prova adesso ?
ecco e' BUGGATO !!!!!!!


Stessa cosa di prima...ma con buggato ti riferisci a un errore del programma
o a un errore  del php?
Ciiips


 o a un errore  del php?
che devi mettere $numer = "$numero";
se no non va
oppure usare la conversione della variabile $numero in stringa di caratteri
<?PHP
  /* Inizio Script  per il contatore */
if (!file_exists("contatore.dat")) {
        $file=fopen("contatore.dat","w");
        $numero=0; }
else {
        $file=fopen("contatore.dat","r+");
        $numero=fgets($file,20);
        fseek($file, 0); /* risposta il puntatore all'inizio del
        file  senza doverlo chiudere e riaprire */ }
        $numero++;
       //  echo "$numero";     /* Visualizza il numero  in cifre normali */
        fputs($file,$numero); /* riscrive il valore nel file */
        fclose($file);
     $numer = "$numero";
      /*converto in stringa
      non togliere perche se
      ci faccio i numerini
      li mettiamo*/
echo "<center>";
for($i=0;$i<strlen($numer);$i++){
    echo "<img src=\"imma/".$numer{$i}.".jpg>";
}
echo "</center>";
?>


Cosi' funziona tutto perfettamente, grazie.
Potresti solo dirmi cosa succede di diverso facendo
$numer="$numero";
e nella riga
 echo "<img src=\"imma/".$numer{$i}.".jpg>";
il significato di {$i}
Grazie 1000


  echo "<img src=\"imma/".$numer{$i}.".jpg>";
visualizza il cararttere selezionato $i
al posto di $i metti 1


Eh eh eh grazie 1000, fantastico l'esempio :)
Ciiips
