• Consiglio Direttivo

    [Stringhe] substr();

    Sintassi: string substr* ( string $string** , int $start** [, int $length** ] )*

    substr è una funzione di PHP che restituisce parte della stringa $string, intercettata dai parametri $start ed $length.
    $start localizza il carattere dal quale iniziare l'estrazione della porzione di stringa desiderata fino alla fine della stessa, mentre il parametro opzionale $length è il numero di caratteri da estrarre (o omettere come vedremo appresso).
    Facciamo intanto un esempio senza utilizzare il parametro opzionale $length:
    [php]$string = "abcdefg";
    $string = substr ( $string, 1);
    echo $string; // risultato: bcdefg[/php]
    Come possiamo notare, esattamente come avviene per gli array, bisogna partire a fare il conteggio dalla posizione 0, che nel nostro esempio equivale ad a.
    Se $start è invece un numero negativo, la funzione estrarra' una porzione di stringa partendo dal carattere $start individuato dalla fine della stringa:
    [php]$string = "abcdefg";
    echo substr ( $string, -2); // risultato: fg[/php]
    Inseriamo adesso il parametro $length che, come detto, è il numero di caratteri da restituire partendo da $start:
    [php]$string = "abcdefg";
    echo substr($string, 1, 3); //risultato: bcd
    echo substr($string, 0, 4); // risultato: abcd
    echo substr($string, 0, 8); // risultato: abcdefg ($length puo' anche superare la lunghezza di $string)
    echo substr($string, -1, 1); // risultato: g[/php]
    Immettendo solo il valore di $start tra parentesi graffe è possibile estrarre anche un singolo carattere:
    [php]$string{0} // risultato: a
    $string{3} // risultato: c[/php]
    Qualora $string sia inferiore o uguale a $start, la funzione restituirà FALSE.
    Se $length è negativo, verranno omessi $length caratteri dalla fine di $string:
    [php]$string = "abcdefg";
    echo substr ($string, 2, -2); // risultato: cde
    echo substr ($string, 1, -3); // risultato: bcd
    echo substr ($string, -4, -2); // risultato: de[/php]
    Bisogna fare attenzione a non far accavallare i valori di $start ed $length, al fine di evitare che come risultato si abbia una stringa vuota:
    [php]$string = "abcdefg";
    echo substr ($string, -2, -4) // si otterrà una stringa vuota dato che $start punta al carattere f ed $length al carattere d[/php]