[Résolu] truncate en php

  • Auteur de la discussion Auteur de la discussion h4ni
  • Date de début Date de début
WRInaute occasionnel
Bonsoir,
avec smarty j'utilise souvent la fonction truncate pour couper les phrases trop longues et mettre un "..." a la fin
je cherche la meme fonction en php!

Merci de me repondre
 
WRInaute impliqué
Voilà la fonction truncate de Smarty:

Code:
function smarty_modifier_truncate($string, $length = 80, $etc = '...',
                                  $break_words = false, $middle = false)
{
    if ($length == 0)
        return '';

    if (strlen($string) > $length) {
        $length -= min($length, strlen($etc));
        if (!$break_words && !$middle) {
            $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
        }
        if(!$middle) {
            return substr($string, 0, $length) . $etc;
        } else {
            return substr($string, 0, $length/2) . $etc . substr($string, -$length/2);
        }
    } else {
        return $string;
    }
}

Pas bien compliqué à trouver... :roll:
 
WRInaute occasionnel
Le problem c'eqt que j'arrive pas a l'utilisé sur ce bout de code

Code:
	// Just return it.
	if ($output_method != 'echo' || empty($posts))
		return $posts;

	echo '
		<table border="0" class="ssi_table">';
	foreach ($posts as $post)
		echo '
			<tr>
				<td valign="top" class="forum">
					<a href="', $post['href'], '" target="_blank">', $post['subject'], '</a>
			</tr>';
	echo '
		</table>';
}
quelqu'un peut m'aider?

j'ai trouvé aussi cette fonction
Code:
<?php
function short_name($str, $limit)
{
    return strlen($str) > $limit ? substr($str, 0, $limit - 3) . '...' : $str;
}
?>
mais ca n'a pas marcher ...
 
WRInaute impliqué
Si tu ne sais pas comment utiliser une fonction en PHP, on ne peux pas faire grand chose pour toi...

Tu calles la fonction dans tes fichiers, et tu l'utilises où tu veux...
 
WRInaute occasionnel
FloBaoti a dit:
Si tu ne sais pas comment utiliser une fonction en PHP, on ne peux pas faire grand chose pour toi...

Tu calles la fonction dans tes fichiers, et tu l'utilises où tu veux...
Merci comeme ;)
 
WRInaute occasionnel
Re
j'ai utilisé cette fonction
Code:
function truncate($text, $length=38)
	{
		$trunc = (strlen($text)>$length)?true:false;

		if($trunc)
			return substr($text, 0, $length).'...';
		else
			return $text;
	}
et ca marche tres bien

Merci
 
WRInaute impliqué
La fonction de Smarty fait 2 choses de plus: ne pas couper les mots et raccourcir la chaine (en mettant: debut ... fin).
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut