8796 sujets

Développement web côté serveur, CMS

Bonjour à tous.

J'ai actuellement cette fonction en place:


<?php foreach ($list as $item) :  ?>
<ul class="sections'">
	<li class="sections">
		<a href="<?php echo $item->link; ?>" class="sections"><?php echo $item->text1; ?></a>
	</li>
<?php endforeach; ?>


Ce qui va m’afficher une liste verticale d'articles. Simplement, j'aimerais que les deux premiers mots qui compose chaque item soient mis en exergue (gras), par exemple:

Ceci est mon titre 1
Tout cela me conviens
Pareil pour cette phrase

Pouvez vous me donner un coup de main ?

Merci. Smiley cligne
Modifié par Astral God (20 Apr 2011 - 12:12)
Hello,

Un truc du genre devrait convenir :


$i=0;

foreach(str_word_count($item->text1, 1) as $mot){
	if($i<2){
		echo '<strong>'.$mot.'</strong> ';
		$i++;
	}else{
		echo $mot.' ';
	}
}


Il y a peut être moyen de faire plus propre Smiley rolleyes Smiley biggrin
Plus propre peut-être, mais en tout cas, ça fonctionne en état. Smiley ravi

Mais si vous avez effectivement plus propre, je prends Smiley lol
Modifié par Astral God (28 Mar 2011 - 15:14)
essaye ca :

$parts = explode(' ', $item->text1);
$new_text = array('<strong>'.$parts[0].'</strong>', '<strong>'.$parts[1].'</strong>');
$new_array = array_splice($parts, 0, 2, $new_text);
$item->text1 = implode(' ', $new_array);


attention c'est un espace entre les quotes des fonctions explode et implode Smiley smile
Bonjour.

Alors, en ce qui concerne la solution de Sylvain M, elle marche mais avec quelques petit pépins;

- les signes de ponctuation ne sont pas affichés (".,!?"...)
- ni la caractères spéciaux ("ç" par exemple)

En ce qui concerne la solution de Nukleo, je n'arrive pas a la faire marcher tout court.
Quand je l’intègre dans le fichier en état, rien ne s'affiche...

Merci à vous. Smiley cligne

<?php foreach ($list as $item) :  ?>
<ul class="sections'">
	<li class="sections">
		<a href="<?php echo $item->link; ?>" class="sections">
		<?php echo preg_replace('#^(\w+\b.*?){2}#', '<strong>$0</strong>', $item->text1); ?>
		</a>
	</li>
<?php endforeach; ?>