Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [php] ucwords customizzato

    Salve, ho un database scritto tutto uppercase e mi serve riportare le parole, spesso cognomi, nel formato iniziale maiuscola -> resto della parola minuscola.
    Nella maggior parte dei casi mi è stato sufficiente fare così:
    Codice PHP:
    $row['cognome'] = ucwords(strtolower($row['cognome'])); 
    però nel caso ad esempio di un cognome come D'ELIA, l'output verrebbe (giustamente) così D'elia.
    Come posso fare nel caso di apostrofate ad alzare anche la lettera successiva? -> D'Elia
    :master:
    わさび

  2. #2
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    Credo che il problema potrebbe tranquillamente essere risolto con una espressione regoalare, che però io non padroneggio ancora alla grande, quindi potrei sggerirti questa soluzione alternativa che prevede anche nomi composti
    Codice PHP:
    $str=$row['cognome'];
    $split=explode(" "$str);

    $count=count($split);

    $cognome="";
    for(
    $i=0$i<$count$i++){
     
    $split[$i]= ucwords(strtolower($split[$i]));
     
    $cognome .=$split[$i];
    }
    $split=explode("'"$cognome);
    $count=count($split);

    $cognome="";
    for(
    $i=0$i<$count$i++){
     
    $split[$i]= ucwords($split[$i]);
     
    $cognome .=$split[$i];

    Assolutamente improvvisata, e da provare..
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    grazie 1000,
    la provo subito
    わさび

  4. #4
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Avevi dimenticato di riaggiungere gli spazi e gli apostrofi splittati:
    l'ho convertita in questa ed ora funziona:
    Codice PHP:
    function customucwords(&$passedvar) {
        
    $split explode(" "$passedvar);
        
    $count count($split);
        
        
    $temp "";
        for (
    $i=0$i<$count$i++) {
            
    $split[$i] = ucwords(strtolower($split[$i]));
            if (
    $i!=&& $i!=$count$temp .= " ";
            
    $temp .= $split[$i];
        }
        
    $split explode("'"$temp);
        
    $count count($split);
        
        
    $temp "";
        for (
    $i=0$i<$count$i++) {
            
    $split[$i] = ucwords($split[$i]);
            if (
    $i!=&& $i!=$count$temp .= "'";
            
    $temp .= $split[$i];
        }
        
    $passedvar $temp;
    }

    $str "ANTOnella D'ELIA";
    customucwords($str);
    echo 
    $str//outputs: Antonella D'Elia 
    わさび

  5. #5
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    ho editato su: ora funziona
    わさび

  6. #6
    io avrei fatto così:

    function UPFirst($string) {
    $string = Ucwords(str_replace("'", " ' ", strtolower($string)));
    return str_replace(" ' ", "'", $string);
    }

    $str = "aNTOnella d'elIA";
    echo UPFirst($str); ->
    --------------------------
    Antonella D'Elia



    Non è più rapido?
    CORROBORANTE
    GLEEEEEERRB!

  7. #7
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da Achilleterzo
    io avrei fatto così:

    function UPFirst($string) {
    $string = Ucwords(str_replace("'", " ' ", strtolower($string)));
    return str_replace(" ' ", "'", $string);
    }

    $str = "aNTOnella d'elIA";
    echo UPFirst($str); ->
    --------------------------
    Antonella D'Elia



    Non è più rapido?
    C'hai ragione
    era molto + semplice di quanto pensassi
    grazie
    わさび

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.