limiter nombre de caractère d'une phrase

hello, je voudrais faire apparaître via une base de donnée tous les titres de mes articles de journaux.
pour cela j'indique ce code:
<?
$db = mysql_connect("base", "login", "pass");
mysql_select_db("login",$db); $sql = "SELECT * FROM journal where id=1";
$req = mysql_query($sql) or die("Erreur SQL !<br>".$sql."<br>".mysql_error());
while($data = mysql_fetch_array($req))
{

echo "$data[titre1]<br />$data[titre2]";
}
mysql_close();
?>

jusque là aucun problème MAIS je souhaiterai limiter le nombre de caractère de chaque titre. a partir de 30 caractères, cela se couper et indiquer 3 ...


comment faire?
merci
;-)
still
 
Un ptit strlen sur chaque titre pour savoir si c'est supérieur à 30 caractères, si non, c'est bon, si oui tu utilises les fonctions d'expression regulieres pour prendre les 30 premiers caractères.
 
oui voilà j'ai mis ce code.
si quelqu'un qui passse par ici veut la solution ;-))

Code:
<? 
$db = mysql_connect("base", "login", "pass"); 
mysql_select_db("login",$db); $sql = "SELECT * FROM journal where id=1"; 
$req = mysql_query($sql) or die("Erreur SQL !<br>".$sql."<br>".mysql_error()); 
while($data = mysql_fetch_array($req)) 
{ 

$titre = $data["titre1"];
if(strlen($titre)>=30){ $titre = substr($titre,0,26)."..."; }
echo "$titre";
echo "<br />";
$titre = $data["titre2"];
if(strlen($titre)>=30){ $titre = substr($titre,0,26)."..."; }
echo "$titre";

} 
mysql_close(); 
?>


merci a tous

[mahé : n'hésitez pas a utiliser les baliser [code ] [ /code] ]
 
Un détail ...
C'est sympa ton code, mais si la phrase fait pile 30 caractères, tu va couper les 4 derniers pour afficher 3 points ... :wink:
 
jeroen a dit:
Un détail ...
C'est sympa ton code, mais si la phrase fait pile 30 caractères, tu va couper les 4 derniers pour afficher 3 points ... :wink:
Il faudrait utiliser wordwrap().
Moi je ferai comme ça:

Code:
if(strlen($titre)>=30)
{ 
$titre = wordwrap($titre,35, "boulgou"); // Ajoute boulgou au niveau de la césure à faire
$titre = strstr($titre,"boulgou"); // Ne conserve la phrase que jusqu'à la première césure
$titre = str_replace("boulgou","....",$titre); // Remplace biulgou par les petits points
}

Ou en illisible :
Code:
$titre = (strlen($titre)>=30) ? str_replace("boulgou","....",strstr(wordwrap($titre,40, "boulgou"),"boulgou"))  : $titre;
 

➡️ 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