[Résolu] truncate en php

  • Auteur de la discussion Auteur de la discussion h4ni
  • Date de début Date de début
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
 
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:
 
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 ...
 
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...
 
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 ;)
 
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
 
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