PHP preg_replace
Résolu
graphh
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je suis actuellement dans la réalisation d'un site personnel, et j'aimerai utiliser une fonction de "coupure" de phrase qui remplace la suite par des "...".
J'ai vu à de multiple reprise la fonction substr, mais j'ai un peu de mal avec son fonctionnement.
Je me suis donc rabattu sur ce script:
$nbcar = 25;
if (strlen($donnees['titre']) > $nbcar)
{
$title_cut = ereg_replace("(.{".$nbcar."})( .*)$","\\1 ...", $donnees['titre']);
}
else
{
$title_cut = $donnees['titre'];
}
echo $title_cut ;
Une erreur:
Deprecated: Function ereg_replace() is deprecated
Je googlelise, et remplace ereg par preg, mais il y a une modif a faire dans mes variables, que je n'arrive pas à placer. Des / / si j'ai bien compris.
Quelqu'un pourrait-il m'aider à les insérer? ou me guider sur une autre solution?
D'avance, merci.
Je suis actuellement dans la réalisation d'un site personnel, et j'aimerai utiliser une fonction de "coupure" de phrase qui remplace la suite par des "...".
J'ai vu à de multiple reprise la fonction substr, mais j'ai un peu de mal avec son fonctionnement.
Je me suis donc rabattu sur ce script:
$nbcar = 25;
if (strlen($donnees['titre']) > $nbcar)
{
$title_cut = ereg_replace("(.{".$nbcar."})( .*)$","\\1 ...", $donnees['titre']);
}
else
{
$title_cut = $donnees['titre'];
}
echo $title_cut ;
Une erreur:
Deprecated: Function ereg_replace() is deprecated
Je googlelise, et remplace ereg par preg, mais il y a une modif a faire dans mes variables, que je n'arrive pas à placer. Des / / si j'ai bien compris.
Quelqu'un pourrait-il m'aider à les insérer? ou me guider sur une autre solution?
D'avance, merci.
A voir également:
- PHP preg_replace
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
3 réponses
Bonjour,
Je ne vois pas où est le problème avec la fonction substr. Il suffit de passer:
- argument 1 : ta chaine de caractère
- argument 2 : index de départ de la coupure
- argument 3 : taille de texte à découper depuis l'index de départ
Du moins je trouve son utilisation plus simple que ce que tu as utilisé (désolé si je n'y fais pas plus référence, ça reste obscure pour moi les expressions régulières, tant que je n'en ai pas la réelle utilité ^^)
Pour l'utiliser, reste donc à faire ceci:
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
Je ne vois pas où est le problème avec la fonction substr. Il suffit de passer:
- argument 1 : ta chaine de caractère
- argument 2 : index de départ de la coupure
- argument 3 : taille de texte à découper depuis l'index de départ
Du moins je trouve son utilisation plus simple que ce que tu as utilisé (désolé si je n'y fais pas plus référence, ça reste obscure pour moi les expressions régulières, tant que je n'en ai pas la réelle utilité ^^)
Pour l'utiliser, reste donc à faire ceci:
$nbCar = 25; $chaine = "coucou, ceci est un test de coupure via la fonction substr sur une chaine de caractère longue"; $cut_str = $chaine; if ( sizeof($cut_str) > $nbCar ){ $cut_str = substr($chaine,0,$nbCar)."..."; } echo $cut_str;
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
Merci de la réponse.
$nbCar = 15;
$chaine = $donnees['titre'];
$cut_str = $chaine;
if ( sizeof($cut_str) > $nbCar )
{
$cut_str = substr($chaine,0,$nbCar)."...";
}
echo $cut_str;
Ca donnerait ca dans mon code. Je n'ai certe plus d'erreur, mais ca ne coupe pas mon "titre" :/
Quelle est l'utilité du ,0, dans le substr?
Merci
$nbCar = 15;
$chaine = $donnees['titre'];
$cut_str = $chaine;
if ( sizeof($cut_str) > $nbCar )
{
$cut_str = substr($chaine,0,$nbCar)."...";
}
echo $cut_str;
Ca donnerait ca dans mon code. Je n'ai certe plus d'erreur, mais ca ne coupe pas mon "titre" :/
Quelle est l'utilité du ,0, dans le substr?
Merci
$nbCar = 15; $cut_str = $donnees['titre']; if ( sizeof($cut_str) > $nbCar ) { $cut_str = substr($cut_str,0,$nbCar)."..."; } echo $cut_str;
J'ai corrigé, j'avais fais une petite faute.
Le '0' est l'index de départ, là où la fonction substr doit commencer la "sous chaine".
Donc l'instruction : substr("blablabla",0,5) devrait renvoyer les 5 premiers caractères de 'blablabla'.
Je n'ai pas tester ce que je t'ai mis, mais logiquement ça devrait donner le résultat. Si ce n'est pas le cas ce n'est pas normal (fais le moi savoir et je jetterai un oeil demain)
Si ça ne marche pas, es-tu sûr que le titre fais plus de 15 caractères ? Le script coupe uniquement et ajouter les "..." uniquement si le titre dépasse la taille maximum autorisée.
Pourras-tu afficher la taille du titre juste en guise de traces : echo sizeof($donnees["titre"])