J'ai besoin de changement dans le cas de PHP d'une chaîne de différentes manières qui dépendIdig par la sous-chaîne.
Si la sous-chaîne séparée par l'espace et seules des lettres mettent la première lettre majuscule et le repos minuscule.
S'il y a des lettres et des chiffres, ils devraient toujours remédier majuscule: p>
ce PHP 5. P> par exemple: p> Nouvelle Apple iPhone X 64GB CVX-DK46 P>
blockQuote> devrait devenir: p> Nouvelle Apple iPhone X 64GB CVXDK46 P>
blockQuote> p>
4 Réponses :
Ceci va boucler à travers chaque mot et voir s'il y a un chiffre dans le mot, si non, alors effectuez la stradbower et Ucwords. https://3v4l.org/qccg9 p> p>
Voici une autre méthode. La seule différence est l'utilisation de la fonction array_walk () code> au lieu de la
foreach () code> boucle en réponse andreas. (Qui est aussi une bonne réponse.)
$str = 'NEW APPLE IPHONE X 64GB CVX-Dk46';
$data = explode(' ', $str); //This will take the sting and break the string up
//into an array using the space bewtween the words to break apart the string.
array_walk($data, function(&$item){ //Walk each item in the array through a function to decide what gets UC letter.
if(!preg_match('/\d/', $item)){ //Test for any numbers in a word.
//If there are no numbers convert each character to lower case then upper case the first letter.
$item = ucwords(strtolower($item));
}
});
$newString = implode(' ', $data); //Take the new array and convert it back to a string.
echo $newString; //This will output: "New Apple Iphone X 64GB CVX-Dk46"
Vous ne pouvez pas y parvenir à une seule ligne.Veuillez voir le code ci-dessous si cela peut vous être utile.
New Apple Iphone X 64GB CVX-Dk46
Tout d'abord, vous devez trouver le numéro dans votre chaîne. - Si vous avez le numéro, vous devez séparer votre chaîne en tableau Le premier tableau ne contient que la chaîne, le second tableau est contenant un numéro (ou un nombre et une chaîne). - Si vous n'avez pas le numéro que vous n'avez pas besoin d'utiliser la fonction PHP Strtolower pour abaisser votre chaîne et utilisez la fonction PHP ucwords pour convertir le premier caractère d'une chaîne en majuscule Vous pouvez essayer le code ci-dessous: Link: https://3v4l.org/jw6wf
function upperCaseString($string) { $pattern = '/(?=\d)/'; $array = preg_split($pattern, $string, 2); $text=''; if(count($array)>1) { $text=ucwords(strtolower($array[0])).' '.strtoupper($array[1]); } else { $text=ucwords(strtolower($array[0])); } return $text; } $str = "NEW APPLE IPHONE X 64GB CVX-Dk46"; echo upperCaseString($str);
Je viens de remarquer que le
- code> dans le dernier mot est manquant, est-ce une faute de frappe ou doit-elle être supprimée? Si oui, quel est le critère pour supprimer
- code>?