J'essaie de tronquer du texte dans PHP et je suis tombé sur cette méthode ( http://theodin.co.uk/blog/development/truncate-text-in- php-the-easy-way.html ), qui à en juger par les commentaires semble être une excellente solution facile à implémenter. Le problème est que je ne sais pas comment l'implémenter: S.
Quelqu'un voudrait-il que je me dirige vers la marche à suivre pour mettre en œuvre cela? Toute aide que ce soit serait appréciée.
Merci d'avance.
La chose évidente à faire est de lire la documentation .
Mais pour aider: substr($str, $start, $end);
$str
est votre texte
$start
est l'index des caractères pour commencer. Dans votre cas, il s'agit probablement de 0, ce qui signifie le tout début.
$end
est l'endroit où tronquer. Supposons que vous vouliez terminer à 15 caractères, par exemple. Vous l'écririez comme ceci:
<?php
$text = "long text that should be truncated";
echo substr($text, 0, 15);
?>
et vous obtiendriez ceci:
long text that
logique?
[~ # ~] modifier [~ # ~]
Le lien que vous avez donné est une fonction pour trouver le dernier espace blanc après avoir coupé le texte à la longueur souhaitée afin de ne pas couper au milieu d'un mot. Cependant, il manque une chose importante - la longueur souhaitée à transmettre à la fonction au lieu de toujours supposer que vous voulez qu'elle soit de 25 caractères. Voici donc la version mise à jour:
function truncate($text, $chars = 25) {
if (strlen($text) <= $chars) {
return $text;
}
$text = $text." ";
$text = substr($text,0,$chars);
$text = substr($text,0,strrpos($text,' '));
$text = $text."...";
return $text;
}
Donc, dans votre cas, collez cette fonction dans le fichier functions.php et appelez-la comme ceci dans votre page:
$post = the_post();
echo truncate($post, 100);
Cela réduira votre publication jusqu'à la dernière occurrence d'un espace blanc avant ou égale à 100 caractères. Évidemment, vous pouvez passer n'importe quel nombre au lieu de 100. Tout ce dont vous avez besoin.
$mystring = "this is the text I would like to truncate";
// Pass your variable to the function
$mystring = truncate($mystring);
// Truncated tring printed out;
echo $mystring;
//truncate text function
public function truncate($text) {
//specify number fo characters to shorten by
$chars = 25;
$text = $text." ";
$text = substr($text,0,$chars);
$text = substr($text,0,strrpos($text,' '));
$text = $text."...";
return $text;
}
$text="abc1234567890";
// truncate to 4 chars
echo substr(str_pad($text,4),0,4);
Cela évite le problème de tronquer une chaîne de 4 caractères à 10 caractères. (C'est-à-dire que la source est plus petite que la valeur requise)