begin process at 2012 05 27 18:15:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > RÉCUPÉRATION D'UN BOUT DE STRING EN FONCTION DU NOMBRE DE MOTS

RÉCUPÉRATION D'UN BOUT DE STRING EN FONCTION DU NOMBRE DE MOTS


 Information sur la source

Note :
Aucune note
Catégorie :Chaîne de caratère Niveau :Débutant Date de création :10/09/2004 Date de mise à jour :10/09/2004 17:17:51 Vu / téléchargé :2 980 / 102

Auteur : rekam

Ecrire un message privé
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

Ceci est une classe qui permet de récupérer une partie d'une string en fonction, soit du nombre de mots, soit du nombre de lettres. Son utilisation est extrêmement simple (voir ci-dessous).

Source

  • <?php
  • class TraitementString {
  • /**
  • * Constructeur de la class
  • */
  • function TraitementString(){
  • }
  • /**
  • * Fonction qui renvoie une partie d'une string (par rapport au mots)
  • *
  • * Précisément, renvoie les $nbMots premiers mots de la string.
  • *
  • * @param string $phrase La phrase dont on ne veut qu'un bout
  • * @param integer $nbLettres Le nombre de mots à prendre
  • * @param integer $nbLMax Le nombre de lettres maximum à avoir
  • * @return string Le bout de phrase
  • */
  • function get_premiersMots($phrase, $nbMots, $nbLMax = 0){
  • $premiersMots = "";
  • $phrase = trim($phrase);
  • $mots = explode(" ", $phrase);
  • $nbCarac = 0;
  • for ($i = 0; $i < count($mots); $i++){
  • $nbCarac += strlen($mots[$i]) + 1;
  • /**
  • * On break si on arrive au nombre de mots voulus ou si on a atteint une
  • * quantité critique de lettres
  • */
  • if ($i == $nbMots || ($nbLMax > 0 && $nbCarac >= $nbLMax && $premiersMots)){
  • break;
  • }
  • $premiersMots .= " ".$mots[$i];
  • /**
  • * Ce break aura lieu seulement si on ne récupère que le 1er mot. Sinon
  • * la boucle sera terminée à cause du break au-dessus
  • */
  • if ($nbLMax > 0 && $nbCarac >= $nbLMax) {
  • break;
  • }
  • }
  • $premiersMots = trim($premiersMots);
  • return $premiersMots;
  • }
  • /**
  • * Fonction qui renvoie une partie d'une string (par rapport aux lettres)
  • *
  • * Précisément, renvoie les $nbLettres premières lettres de la string. Si la dernière
  • * lettre à prendre est au milieu d'un mot, alors la fonction prendra juste les
  • * dernières lettres de ce mot, pour éviter d'avoir des coupures moches.
  • *
  • * @param string $phrase La phrase dont on ne veut qu'un bout
  • * @param integer $nbLettres Le nombre de lettre à prendre
  • * @return string Le bout de phrase
  • */
  • function get_premieresLettres($phrase, $nbLettres){
  • $premiersMots = "";
  • $phrase = trim($phrase);
  • $mots = explode(" ", $phrase);
  • $nbCarac = 0;
  • for ($i = 0; $i < count($mots); $i++) {
  • $nbCarac += strlen($mots[$i]) + 1;
  • /**
  • * Si on a pas encore récupéré de mots, on ne break pas à ce moment là
  • */
  • if ($nbCarac >= $nbLettres && $premiersMots){
  • break;
  • }
  • $premiersMots .= " ".$mots[$i];
  • /**
  • * Ce break aura lieu seulement si on ne récupère que les lettres du 1er mot. Sinon
  • * la boucle sera terminée à cause du break au-dessus
  • */
  • if ($nbCarac >= $nbLettres) {
  • break;
  • }
  • }
  • $premiersMots = trim($premiersMots);
  • return $premiersMots;
  • }
  • }
  • $t = new TraitementString();
  • $str = "Mais bien le bonjour, il fait bô aujourd'hui, comment ça va?";
  • echo $t->get_premiersMots($str, 5)."<br>";
  • echo $t->get_premieresLettres($str, 35)."<br>";
  • echo $t->get_premiersMots($str, 11, 50)."<br>";
  • ?>
<?php

class TraitementString {

    /**
     * Constructeur de la class
     */
    function TraitementString(){
    }

    /**
     * Fonction qui renvoie une partie d'une string (par rapport au mots)
     *
     * Précisément, renvoie les $nbMots premiers mots de la string.
     *
     * @param       string      $phrase     La phrase dont on ne veut qu'un bout
     * @param       integer     $nbLettres  Le nombre de mots à prendre
     * @param       integer     $nbLMax     Le nombre de lettres maximum à avoir
     * @return      string                  Le bout de phrase
     */
    function get_premiersMots($phrase, $nbMots, $nbLMax = 0){
        $premiersMots = "";
        $phrase = trim($phrase);
        $mots = explode(" ", $phrase);
        $nbCarac = 0;
        for ($i = 0; $i < count($mots); $i++){
            $nbCarac += strlen($mots[$i]) + 1;
            /**
             * On break si on arrive au nombre de mots voulus ou si on a atteint une
             * quantité critique de lettres
             */
            if ($i == $nbMots || ($nbLMax > 0 && $nbCarac >= $nbLMax && $premiersMots)){
                break;
            }
            $premiersMots .= " ".$mots[$i];
            /**
             * Ce break aura lieu seulement si on ne récupère que le 1er mot. Sinon
             * la boucle sera terminée à cause du break au-dessus
             */
            if ($nbLMax > 0 && $nbCarac >= $nbLMax) {
                break;
            }
        }
        $premiersMots = trim($premiersMots);
        return $premiersMots;
    }

    /**
     * Fonction qui renvoie une partie d'une string (par rapport aux lettres)
     *
     * Précisément, renvoie les $nbLettres premières lettres de la string. Si la dernière
     * lettre à prendre est au milieu d'un mot, alors la fonction prendra juste les
     * dernières lettres de ce mot, pour éviter d'avoir des coupures moches.
     *
     * @param       string      $phrase     La phrase dont on ne veut qu'un bout
     * @param       integer     $nbLettres  Le nombre de lettre à prendre
     * @return      string                  Le bout de phrase
     */
    function get_premieresLettres($phrase, $nbLettres){
        $premiersMots = "";
        $phrase = trim($phrase);
        $mots = explode(" ", $phrase);
        $nbCarac = 0;
        for ($i = 0; $i < count($mots); $i++) {
            $nbCarac += strlen($mots[$i]) + 1;
            /**
             * Si on a pas encore récupéré de mots, on ne break pas à ce moment là
             */
            if ($nbCarac >= $nbLettres && $premiersMots){
                break;
            }
            $premiersMots .= " ".$mots[$i];
            /**
             * Ce break aura lieu seulement si on ne récupère que les lettres du 1er mot. Sinon
             * la boucle sera terminée à cause du break au-dessus
             */
            if ($nbCarac >= $nbLettres) {
                break;
            }
        }
        $premiersMots = trim($premiersMots);
        return $premiersMots;
    }

}

$t = new TraitementString();
$str = "Mais bien le bonjour, il fait bô aujourd'hui, comment ça va?";

echo $t->get_premiersMots($str, 5)."<br>";
echo $t->get_premieresLettres($str, 35)."<br>";
echo $t->get_premiersMots($str, 11, 50)."<br>";

?>

 Conclusion

Le zip contient 2 fichiers. Un fichier de classe, et un fichier qui exploite cette classe. Dans le code ci-dessus, ils sont les 2 ensemble, histoire de donner une idée du fonctionnement de la chose.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

10 septembre 2004 17:17:52 :

 Sources du même auteur

Source avec Zip Source avec une capture GÉNÉRATION DE DOCUMENT OPENOFFICE 2.0 SPREADSHEET
Source avec Zip Source avec une capture GESTION DE TOURNOIS VIA LE WEB
Source avec Zip Source avec une capture MAILING LISTE TOUTE SIMPLE SANS PRÉTENTIONS
Source avec Zip Source avec une capture LISTAGE D'UNE REQUÊTE SUR PLUSIEURS PAGES
Source avec Zip Source avec une capture SAISIE DE DATES VIA CALENDRIER

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales