begin process at 2012 05 27 19:40:45
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > COUPER UNE CHAINE DE CARACTÈRES SANS COUPER LES MOTS

COUPER UNE CHAINE DE CARACTÈRES SANS COUPER LES MOTS


 Information sur la source

Note :
9 / 10 - par 4 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caratère Niveau :Débutant Date de création :01/06/2004 Vu :7 725

Auteur : natha

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

 Description

Vous en avez marre de couper vos chaines de caractères et de couper les mots par la même occasion ? Et bien essayez cette fonction ! La seule fonction qui coupe une chaine sans couper ses amis les mots !!!

$str est la chaîne à couper
$length est la longueur maxi que vous voulez

Si un mot est coupé, il sera viré.
Si la chaîne est plus courte que $length, les "..." ne sont pas affichés.

Bon, ça marchera pas si vous mettez des   pour les espaces à chaque fois hein ;) il faut des espaces " " entre chaque mot.

------

Je vous assure que c'est utile !
Exemple :

substr("espèce de concombre !", 0, 13)."…";

renvoie : espèce de con...

ma fonction renvoie : espèce de...

C'est mieux non ? allé si quand même ! :p

Source

  • /*
  • ** Fonction cut_str($str, $length)
  • ** Coupe la string $str passée à la longueur $length
  • ** Ne coupe pas les mots
  • ** Ajoute '.' si nécessaire
  • */
  • function cut_str($str, $length)
  • {
  • $str = strip_tags($str);
  • if (strlen($str) < $length) return $str;
  • $s = substr($str, 0, $length+1);
  • while ($s[strlen($s)-1] != " ")
  • $s = substr($s, 0, strlen($s)-1);
  • return substr($s, 0, strlen($s)-1)."&hellip;";
  • }
/*
** Fonction cut_str($str, $length)
** Coupe la string $str passée à la longueur $length
** Ne coupe pas les mots
** Ajoute '.' si nécessaire
*/
function cut_str($str, $length)
{
	$str = strip_tags($str);
	if (strlen($str) < $length) return $str;
	$s = substr($str, 0, $length+1);
	while ($s[strlen($s)-1] != " ")
		$s = substr($s, 0, strlen($s)-1);
	return substr($s, 0, strlen($s)-1)."&hellip;";
}



 Sources du même auteur

UPLOAD D'IMAGE SIMPLE ET EFFICACE
INTERVALLE ENTRE 2 DATES / DIFFÉRENCE ENTRE 2 DATES
AGE SELON LA DATE DE NAISSANCE

 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

Commentaire de Kirua le 02/06/2004 07:48:27

utile, je sais pas qui a mis 7 sans commentaire...
quoiqu'il en soit, bonne idée ;-)

Commentaire de natha le 02/06/2004 08:49:36

Merci ;)
J'ai souvent des fichiers /inc/util.inc.php dans mes sites web avec des ptites fonctions bien utiles que je récupère souvent.

Commentaire de eax le 02/06/2004 13:56:58

arf oui ça sert tjs ça

Commentaire de matrey le 05/06/2004 10:22:11

string wordwrap ( string str [, int width [, string break [, boolean cut]]])
...

Commentaire de margin le 08/05/2005 17:32:43

bien ce code ,

mais 1 - attention au strip_tags() , si vous coupez du html, ça ne marchera pas pour afficher les caractéristiques html.

mais 2 -  attention à ne pas oublier les accolades de while(condition){ instruction;} et de if (condition){instruction;} sinon ça ne marche pas correctement !

mais merci quand même ! :-)

Commentaire de Kirua le 08/05/2005 17:39:57

ben si margin, c'est un grand classique pour la syntaxe C-like: si tu n'as qu'une seule instruction dans ta structure de contrôle (if, else, for, while) tu n'es pas obligé de mettre les accolades.

Commentaire de margin le 08/05/2005 18:26:27

oui, justement dans ton instruction while, il y en a 2 instructions.... d'après ce que j'ai fait avec, le :

return substr($s, 0, strlen($s)-1)."&hellip;";

était à mettre dans le while.

j'ai passé 1 heure à m'énerver dessus parce que le html que je coupais avec ne marchait pas... donc vu que maintenant ça marche... c'est ce qu'il fallait faire ! non ? A moins que c'est un hasard de programmation... aujourd'hui plus rien ne m'étonne ! ;-)

merci Kirua, en tout cas, pour ton script.

Commentaire de natha le 09/05/2005 13:00:19

Non, le return n'est pas à mettre dans le while... sinon tu coupe les mots... Le principe ici justement c'est de supprimer les lettres jusqu'à ce qu'on trouve un espace. Maintenant si ta chaine ne contient aucun espace... c'est sûr que ça marchera pas et renverra une chaine vide (je ne compte pas un &nbsp; comme un espace dans le cas du script mais bien le caractère espace ' ').

 Ajouter un commentaire




Nos sponsors


Sondage...

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,468 sec (3)

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