Controle le pourcentage de majuscules dans 1 chaine

  Information

Cet exemple permet de faire deux contrôles pour éviter d'avoir des textes avec trop de majuscules.

Le premier test permet de contrôler qu'il n'y a pas plus de lettres en majuscule que de lettres en minuscule.

Le deuxième test permet de contrôler que le pourcentage de lettres en majuscule par rapport au nombre de lettres total est inférieur à 50%. ( 50% étant un exemple, à vous de mettre la valeur qui vous convient )

  code source classé dans  SEO - Référencement

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
                               
<?php
/*---------------------------------------------------------------*/
/*
    Titre : Controle le pourcentage de majuscules dans 1 chaine                                                           
                                                                                                                          
    URL   : https://phpsources.net/code_s.php?id=417
    Auteur           : forty                                                                                              
    Website auteur   : http://www.toplien.fr/                                                                             
    Date édition     : 18 Juin 2008                                                                                       
    Date mise à jour : 23 Aout 2019                                                                                      
    Rapport de la maj:                                                                                                    
    - fonctionnement du code vérifié                                                                                    
*/
/*---------------------------------------------------------------*/

    $chaine "Chaîne à tester POUR LES MAJUSCULES";

    $nb_min preg_match_all('/[a-z]/'$chaine$res);
    $nb_maj preg_match_all('/[A-Z]/'$chaine$res);
    if ($nb_maj >= $nb_min) {
        echo 'La chaine contient plus de majuscules que de minuscules <br />';
    }
    if (($nb_maj strlen$chaine ) * 100 ) > 50) {
        echo 'La chaine contient plus de 50% de majuscules <br />';
    }
?>

Exemple :

 
 01    
 02    
 03    
 04    
 05    
                                
    Affiche :
    La chaine contient plus de majuscules que de minuscules
    La chaine contient plus de 50% de majuscules

          Fonctions du code - Doc officielle PHP

   php.net   Description Versions PHP OUTIL
   echo Affiche une chaîne de caractères PHP 4, PHP 5, PHP 7, PHP 8
   preg_match_all Expression rationnelle globale PHP 4, PHP 5, PHP 7, PHP 8
   strlen Calcule la taille d'une chaîne PHP 4, PHP 5, PHP 7, PHP 8

   Dites merci aux auteurs pour leurs travail, ça ne coûte rien et ça fait toujours plaisir wink

[1]

  • avatar

    KOogar

    19 Juin 2008 à 03:47

    Salut Etienne smile

    Le premier test je vois pas trop a quoi il sert, par contre le second est trés interressant. Changer les majuscules d'un texte est particulièrement délicat comme opération.
    En imposant un pourcentage avant une opération de transformation est pour le moins pertinent.

    Comme le problème est toujours avec les maj des noms propres et les maj de nom de sociétés, en incluant ton test on arrive à contourner ce problème.
    J'ai fait un filtre en incluant ton test et le résultat est positif.
    Tous les problemes de Maj ne sont pas résolues pour autant, mais pour cleaner des textes, ce filtre devrait aider.
    J'ai mis le pourcentage à 20% Maximum de Majuscule dans un texte, ca doit varier entre 10 et 20%. Jsuis pas prof de francais alors ca reste qu'une estimation ^^
    On pourrait compléter avec des messages d'alertes si le texte dépasse les 50% de Majuscules, ya peut-etre du spam dans l'air ou un gros boulet qui connait pas la Netiquette!!

    ++
    KOogar





    Code:
    <?php

    function filtre_majuscule ($chaine,$pourcentage) {
    $nb_min = preg_match_all('/[a-z]/', $chaine, $TRUE);
    $nb_maj = preg_match_all('/[A-Z]/', $chaine, $TRUE);

    if (($nb_maj / strlen( $chaine ) * 100 ) > $pourcentage) {

    $string = strtolower($chaine); // Met tout le texte en minuscule
    $capital = true;

    for($i = 0; $i < strlen($string); $i++){
    $lettre = substr($string, $i, 1);
    if($lettre == '.' || $lettre == '!' || $lettre == '?')
    {$capital = true;}
    elseif(!empty($lettre) && $capital == true){
    $lettre = strtoupper($lettre); // Met une majuscule
    $capital = false;
    }
    $new_texte .= $lettre;
    }
    return $new_texte;
    }
    else {
    return $chaine; }
    }

    $chaine = "Chaîne à tester POUR LES MAJUSCULES";
    echo filtre_majuscule ($chaine,20);
    // Chaîne à tester pour les majuscules
    $chaine = "Chaîne à tester Mr Dupond pour ouvrir une SARL";
    echo filtre_majuscule ($chaine,20);
    // Chaîne à tester Mr Dupond pour ouvrir une SARL

    ?>


 Autres snippets qui pourraient vous intéressez

Coupe une chaine en fonction des Majuscules via PHP

Compatibilité : PHP 5, PHP 7

Recompose une chaine de mots en fonction des Majuscules en utilisant la fonction preg_split () pour séparer les mots où se trouve une lettre majuscule.

Conversion d'une chaine en minuscules/majuscules

Compatibilité : PHP 5, PHP 7

Les 4 fonctions clés PHP pour manipuler les majuscules et minuscules dans une chaine de caractères.

Pagination avec controle des résultats

Compatibilité : PHP 5, PHP 7

Ce page par page est portable car il passe par une fonction. Vous pouvez donc l'afficher en haut de vos résultats et à la fin de vos résultats.

Remplace 1 chaine ou 1 tableau dans 1 chaine

Compatibilité : PHP 5, PHP 7

Avoir la capacité de remplacer rapidement une chaine ou un tableau. En toute simplicité avec la fonction str_replace().

Corrige les Majuscules d'un texte avec PHP

Compatibilité : PHP 5, PHP 7

Cette fonction vous permet de corriger votre texte si les majuscules ou minuscules se confondent.

Présentation de PHP

PHP débutant et initié 50 Tutoriel

Présentation de MySQL

avatar

Forty

  18 Juin 2008

  SOURCE   Télécharger

Information sur les mises à jour

Dernière mise à jour :

    23 Aout 2019
    fonctionnement du code vérifié

7 778 Vues
Compatibilité
PHP 5, 7 et 8+
avatar