Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/04/2008, 10h17   #1
Membre habitué
 
Avatar de lolymeupy
 
Inscription : octobre 2006
Messages : 329
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2006
Messages : 329
Points : 106
Points : 106
Envoyer un message via MSN à lolymeupy
Par défaut Extraire les n premiers caractères d'1 chaine jusqu'à un espace

Bonjour,

Je voudrais afficher un tableau d'enregistrement (en provenance de ma Bdd), et au lieu d'afficher tous le texte,
je voudrais afficher seulement les trois premières lignes disons, afin d'afficher un certains nombres d'enreg. sur la même page....
(un peu comme ici :
http://www.illegalparty.com/rubrique94.html
)

Je sais qu'il y a la fonction substr mais elle ne permet pas de s'arrêter pile à la fin d'1 mot...
Et il y a la fonction wordwrap aussi, et je pense que le truc c'est un mix entre les 2 mais j'avoue que
je sèche complètement sur comment faire ce "mix" entre ces 2 fonctions...
Merci d'avance
lolymeupy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 12h02   #2
Membre éclairé
 
Inscription : août 2006
Messages : 379
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2006
Messages : 379
Points : 383
Points : 383
Pour ce qui est du site linké, il doit utiliser une fonction de ce genre :
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
function tronque($message, $nb) {
	if (strlen($message) > $nb) {
		$message = substr($message, 0, $nb);
		$position_espace = strrpos($message, ' '); 
		$texte = substr($message, 0, $position_espace);  
		$message = $texte.' [...]'; 
	}
	return $message; 
}
?>
En espérant que ça puisse t'aider à faire ce que tu souhaites (je n'ai pas bien compris )
SpiritOfDoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 12h02   #3
Membre du Club
 
Avatar de kifouillou
 
Inscription : septembre 2005
Messages : 270
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : septembre 2005
Messages : 270
Points : 51
Points : 51
Envoyer un message via MSN à kifouillou
Je sais pas trop si c'est cela que tu veux mais si tu veux afficher les 3 premiers enregistrements, tu met un

dans ta requète.
kifouillou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 12h38   #4
Membre éprouvé
 
Avatar de SphynXz
 
Développeur Web
Inscription : mars 2008
Messages : 439
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 439
Points : 474
Points : 474
enfait, il faut faire attention à deux fois à ne pas couper les mots

wordwrap va très bien le faire, mais substr ???

tu peux via une expression regulière simuler un substr quifera attention aux mots
imaginons qu'on veux récupérer les 200 caractères d'un textes. et après les séparés par ligne de 100
Code php :
1
2
3
4
5
6
7
8
 
$tontexte = "Alii summum decus in carruchis solito altioribus et ambitioso vestium cultu ponentes sudant sub ponderibus lacernarum, quas in collis insertas cingulis ipsis adnectunt nimia subtegminum tenuitate perflabiles, expandentes eas crebris agitationibus maximeque sinistra, ut longiores fimbriae tunicaeque perspicue luceant varietate liciorum effigiatae in species animalium multiformes."; // généré automatiquement :p
$nb = 200;
$tontexte = (strlen($tontexte) > $nb)?ereg_replace("(.{".$nb."})( .*)$","\\1 (...)", $tontexte) : $tontexte;
 
$tontexte = wordwrap($tontexte, 100);
 
echo nl2br($tontexte);
__________________
I don't know what will be used in the next world war, but the 4th will be fought with stones. - Albert Einstein
Pour détourner un avion, il faut monter dedans - Frédéric beigbeder
SphynXz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 15h20   #5
Membre Expert
 
Avatar de darkstar123456
 
Inscription : mars 2008
Messages : 1 180
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Belgique

Informations forums :
Inscription : mars 2008
Messages : 1 180
Points : 1 357
Points : 1 357
Envoyer un message via Skype™ à darkstar123456
Perso, j'aime bien la fonction de SpiritOfDoc !

Elle commence par couper la chaine jusqu'à un certain endroit. Ensuite elle va rechercher la dernière position d'un espace (donc fin d'un mot) et recoupe la chaine jusqu'au dernier espace !

Moi je dis gg !
darkstar123456 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 15h28   #6
Membre éclairé
 
Inscription : août 2006
Messages : 379
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2006
Messages : 379
Points : 383
Points : 383
Doit y avoir un équivalent dans la FAQ ou quelques choses comme ça
SpiritOfDoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 18h00   #7
Invité régulier
 
Inscription : décembre 2006
Messages : 10
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : décembre 2006
Messages : 10
Points : 6
Points : 6
Sinon, peut être prendre les n premiers caractères de la chaine A (le texte), les enlever de la chaine(les enregistrer dans la chaine B, nouvelle chaine), et ensuite, prendre tous les caractères de la chaine A jusqu'au premier espace et les raouter à la chaine B ?

ça se ferait ça ? (désolé, je ne sais pas encore comment on coupe une chaine )
Maveck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 19h22   #8
Membre habitué
 
Avatar de lolymeupy
 
Inscription : octobre 2006
Messages : 329
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2006
Messages : 329
Points : 106
Points : 106
Envoyer un message via MSN à lolymeupy
Merci à tous, et notament SpiritOfDoc et SphynXz
Et effectivement je vais utiliser celle de SpiritOfDoc qui correspond pile-poil à ce que je cherchais (et puis les regex, c'est un peu trop nouveau pour moi)
Merci encore...

(P.S: mea culpa, je viens de trouver cette solution dans la FAQ :
http://php.developpez.com/faq/?page=...haine-troncate
)
lolymeupy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h10.


 
 
 
 
Partenaires

Hébergement Web