c'è un modo tramite funzione preg_replace di convertire da minuscolo a maiuscolo? non so una cosa tipo
preg_replace("'([a-z])'si","qualche_carattere_speciale_$1",$txt);
c'è un modo tramite funzione preg_replace di convertire da minuscolo a maiuscolo? non so una cosa tipo
preg_replace("'([a-z])'si","qualche_carattere_speciale_$1",$txt);
think simple think ringo
un tizio suggerisce questo trucco
In the case transformations it is better to use "preg_replace", not "strtr":
1) it is faster;
2) it is possible to write a transformation formula for all Windows codepages, instead of each letter writing as most of you did.
<?php
$result = preg_replace("/([a-z\xE0-\xFF])/e","chr(ord('\\1')-32)",$arg);
?>
For "to lower case" transformation:
<?php
$result = preg_replace("/([A-Z\xC0-\xDF])/e","chr(ord('\\1')+32)",$arg);
?>
concordi? Non ho capito bene se posso avvalermi di una espressione regolare in strtoupper. In caso ti dispiacerebbe farmi un esempio?
usa strtoupper, in questo caso è più veloce della preg_replace.Originariamente inviato da Marcy Andy
![]()
think simple think ringo
Spero allora di riuscire a trovare in rete qualche esempio di come usare quella funzione con un'espressione regolare. Non so come fare. A me preme poter fare un intervento mirato su un testo che mi vien dato in input.
mmmmm...prova a spiegarti meglioOriginariamente inviato da Marcy Andy
Spero allora di riuscire a trovare in rete qualche esempio di come usare quella funzione con un'espressione regolare. Non so come fare. A me preme poter fare un intervento mirato su un testo che mi vien dato in input.![]()
think simple think ringo
testo d'esempio:
background-color: #f0f0f0;
risultato:
background-color: #F0F0F0;
non voglio mettere in maiuscolo tutta la stringa, ma solo una parte, quindi mi serve per forza un'espressione regolare.
codice:$stringa = "background-color: #f0f0f0;"; $stringa = preg_replace("/(background-color: #)(.*)(;)/e","'\\1'.strtoupper('\\2').'\\3'",$stringa ); echo $stringa;
questa funziona su una singola stringa, per casi più complessi bisogna fare dei piccoli aggiustamenti
![]()
think simple think ringo
Grazie, sinceramente non sapevo che mettendo e, si potessero lanciare delle funzioni. Non conosco un elenco completo delle opzioni. i è per case-insensitive.
Ad ogni modo ho scritto
ed è andata bene.codice:$txt = preg_replace("'(color *(:|=) *#)(\w+)( *[;}])'ei","'$1'.strtoupper('$3').'$4'",$txt);