IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Complément script php decouper texte


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 10
    Par défaut Complément script php decouper texte
    Bonjour à tous et désolé de vous déranger.

    J'ai trouvé ce script sur la toile qui coupe un texte après le 5ème mot.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    function tronquer_chaine_mot($string, $limit = 5, $fin = '...')
    {
    preg_match('/^\s*+(?:\S++\s*+){1,' .$limit. '}/u', $string, $matches);
    if (!isset($matches[0]) || strlen($string) === strlen($matches[0])) {
    	return $string;
           }
    return rtrim($matches[0]).$fin;
    }
    echo tronquer_chaine_mot("un deux trois quatre cinq six sept huit neuf dix onze douze treize ");
    ?>
    J'aimerai qu'il coupe le texte aléatoirement entre 3 et 5 mots et qu'il affiche les découpages les un en dessous des autres comme une liste exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    un deux trois quatre cinq
    six sept huit
    neuf dix onze douze
    Désolé j'ai pas su trouver comment formater le code php pour le forum

    Merci beaucoup pour votre aide précieuse.
    Kevin

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    pour afficher la code, c'est le bouton "croisillon #" dans la barre d'outil.

    si par "mot" vous chercher à faire un découpage suivant les espaces, vous pouvez faire un parcours du tableau comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function tronquer_chaine_mot($texte) {
     
    	$tableau = explode(" ", trim($texte));
     
    	$resultat = "";
    	$parcours = mt_rand(3, 5);
     
     
    	foreach ($tableau as $index => $element) {
     
    		if ($parcours === $index) {
    			$parcours += mt_rand(3, 5);
    			$resultat .= "\n";
    		}
     
    		$resultat .= " $element";
     
    	}
     
     
    	return trim($resultat); // trim pour retirer le 1er espace
     
    }

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    function tronquer_chaine_mot_alea($string) {
     
    	$array = explode(' ', trim($string));
    	$result = [];
    	while( !empty($array) )
    	{
    		$slice = array_slice($array, 0, mt_rand(3, 5));
    		$result[] = implode(' ', $slice);
    		$array = array_diff($array, $slice);
    	}
    	return implode('<br />', $result);
    }
    // ----------
    $chaine = "un deux trois quatre cinq six sept huit neuf dix onze douze treize ";
    echo tronquer_chaine_mot_alea($chaine);

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 10
    Par défaut
    Merci beaucoup pour votre aide

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    une troisième voie : remplacer les espaces dans ta chaîne par un séparateur de ton choix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $str = "un deux trois quatre cinq six sept huit neuf dix onze douze treize";
    $esp = preg_match_all('~(\s)~', $str, $match, PREG_OFFSET_CAPTURE);   // on extrait la position de tous les espaces
    $pos = array_map(function($p) { return $p[1]; }, $match[0]);   // on arrange le résultat
    $nb  = count($pos);   // nb d'espaces total
    $i   = 0;
    while ($i <= $nb) {
        $i = rand($i, $i + 4);
        $str[$pos[$i]] = '|';
        $i += $i;
    }
    $res = explode('|', $str);

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 10
    Par défaut
    Re bonsoir,

    excusez-moi encore de vous déranger, mais quand je demande de découpé un texte qui possède des caractères spéciaux (é,à......), le résultat s'affiche avec des symbole du type é pour les é.

    Y t'il un moyen d'avoir le résultat avec les caractères spéciaux pris en compte.

    Merci beaucoup pour votre aide.
    Kevin

Discussions similaires

  1. Quel script PHP d'édition de texte WYSIWYG en ligne choisir ?
    Par kagura dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 48
    Dernier message: 22/04/2012, 16h26
  2. texte du script php affiché dans la page résultat
    Par jlarras dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 26/02/2010, 11h48
  3. [Prototype] Récupérer du texte depuis le script php
    Par Haxor668 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 25/11/2009, 16h56
  4. [Configuration] Script PHP concaténant un fichier texte
    Par redvivi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 13/11/2007, 13h44
  5. [Librairies] Ch script PHP pour reconnaissance de texte (OCR)
    Par yvan02 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/05/2006, 16h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo