Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    qual è la func per dire "comincia per" ?

    Come da oggetto:
    Codice PHP:
    if($percorso == "/foto/civilta")  {
    $title $title." (Foto della serie Civiltà)";

    Voglio fare un if che dica: se $percorso COMINCIA PER /foto ....

    Come glielo spiego?

  2. #2
    codice:
        $prova = substr($percorso , 0, 5);
    
      if($prova == "/foto")  { 
      $title = $title." (Foto della serie Civiltà)"; 
      }

  3. #3
    Pensavo ci fosse proprio una funzione "comincia per"

    vorrà dire che userò substr().

    Grazie!

  4. #4
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Puoi usare questa:

    int strncmp ( string str1, string str2, int len )


    This function is similar to strcmp(), with the difference that you can specify the (upper limit of the) number of characters (len) from each string to be used in the comparison.

    Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal.

    Note that this comparison is case sensitive.

  5. #5
    grazie fabi080, così posso evitare di ri-dichiarare ogni volta il valore della variabile!

    mi basta una riga così:
    $confronto = strncmp($percorso,"/foto",6);
    if($confronto == 1) { bla bla bla }

    devo dichiarare solo $confronto

    thank you

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    altrimenti usa una espressione regolare del tipo

    /^//foto/
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Originariamente inviato da Petro_suse91
    if($confronto == 1) { bla bla bla }
    Hai letto bene i valori ritornati dalla funzione?? Se torna 1 la seconda stringa è (in ordine lessicografico) maggiore della prima. Per avere l'uguaglianza devi avere 0.

    E poi che dichiari a fare la variabile confronto, non ti conviene fare direttamente

    if (0 == strncmp($percorso,"/foto",6)) {
    blablabla
    }

  8. #8
    edit: aaah ecco, ho capito dove sbagliavo

    ora è così
    Codice PHP:
    $confronto strncmp($percorso,"/foto",6);
    if(
    $confronto >= 0
    funziona perfettamente.

    E, soprattutto, ho capito perchè!

    P.S. fcaldera, con le regexp non son pratico... preferisco così, per ora. ma grazie del suggerimento

  9. #9
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Originariamente inviato da Petro_suse91
    Non capisco una cosa:

    [PHP]
    Ma scusa, io con strncmp($percorso,"/foto",6) non gli dico esattamente "Controlla che i primi 5 caratteri di $percorso siano uguali a /foto???
    No, gli dici "Controlla che i primi 6 caratteri di $percorso siano uguali a /foto"???

    Perchè usi 6 e non 5?? la stringa "/foto" è lunga 5 caratteri quindi

    $confronto = strncmp($percorso,"/foto",5);

  10. #10
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Originariamente inviato da Petro_suse91
    edit: aaah ecco, ho capito dove sbagliavo

    ora è così
    Codice PHP:
    $confronto strncmp($percorso,"/foto",6);
    if(
    $confronto >= 0
    funziona perfettamente.
    Sei sicuro? Prova con $confronto = 'abc' e vedi cosa restituisce.
    La funzione confronta i primi n caratteri e restituisce 0 se e SOLO se essi sono identici, quindi mettere >= 0 ti porta ad errori.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.