[debutant]couper une chaine

Résolu
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 - 23 mars 2004 à 12:28
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009 - 18 août 2004 à 16:24
Bonjour a tous,

Voila je me suis fait un p'tit systeme de newd tout simple ! apres avoir vu cette semaine grace a un code comment on fait pour couper une chaine a une certaine longeur j'ai voulu l'integrer !!!!

Seul probleme ca ne marche pas ! il me coupe bien la chaine...mais pas a la longeur voulue il enleve juste le dernier mot !

j'ai repris le code et je l'ai teste tout simplement il fonctionne bien! Moi en fait je resors mon champ de la table qui est un long text ?!

Quelqu'un aurait il une idée

je vous remercie

ciao
je suis sous easyphp 1.7
voici mon code

---------------

<?php
//evite les erreurs undefine variable :-)
error_reporting (E_ALL ^ E_NOTICE);

//connction
include("include/connection.php3");
//selection de tous les enregistrements de la table
$selectionne = "select * from news";
//excecution de la requete
$excecute = mysql_query($selectionne);
//nombre de news
$NumNews = mysql_num_rows($excecute);
//si ce nombre est different de 0 on affiche
if (mysql_num_rows($excecute)!=0)
{
echo "<center>[ $NumNews News ]</center>

";
//boucle
$sql = "SELECT * FROM news";
$resultat = mysql_query ($sql);
while ($moi = mysql_fetch_array ($resultat))
{

//recupere les champs
$id = $moi['id'];
$n = $moi['nom'];
$t = $moi['titre'];
$d = $moi['des'];
$da = $moi['date'];
//coupe la chaine
$max = "10";
if (strlen($d) >= $max) {
$d = substr($moi['des'], 0, $max);
$espace = strrpos($moi['des'], " ");
$d = substr($moi['des'], 0, $espace)."...";
}
//affichage du tableau
echo"\";
echo\"----
\";
echo\" Poste par : $n, \";
echo\" Le : $da, \";
echo\"----
\";
echo\" Titre : $t , \";
//echo\", \";
echo\"----
\";
echo\" Description :$d, \";
echo\"\";

}
echo"
";
}

//si pas de news
else echo"<center>[Pas de news trouvés]</center>
";
?>

3 réponses

magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
18 août 2004 à 16:16
Ta fonction de decoupe est bien trop complexe
Tu devrait utiliser celle fournie en php qui est

substr()

Il te suffit de dire substr("ma chaine", debut, fin)

Par exemple ("Ceci est mon titre",0,10) retournera Ceci est m

C pratique pour tronquer les texte trop long.

******************************************
EXTRAIT DU MANUEL OFFICIEL PHP (sur le site php)

substr
(PHP 3, PHP 4 )

substr -- Retourne un segment de chaîne
Description
string substr ( string string, int start [, int length])

substr() retourne le segment de string défini par start et length.

Si start est positif, la chaîne retournée commencera au caractère numéro start, dans la chaîne string. Le premier caractère est numéroté zéro.

Exemple 1. Exemple avec substr()

<?php
$rest = substr("abcdef", 1); // retourne "bcdef"
$rest = substr("abcdef", 1, 3); // retourne "bcd"
$rest = substr("abcdef", 0, 4); // retourne "abcd"
$rest = substr("abcdef", 0, 8); // retourne "abcdef"

// Accéder aux caractères via les accolades
$string = 'abcdef';
echo $string{0}; // retourne a
echo $string{3}; // retourne d
?>


******************************************

Magidev

Pour un contact plus rapide
Ajoutez moi dans vos contacts MSN
Je suis souvent la - Merci

magidev@hotmail.com
3
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
18 août 2004 à 16:22
salut salut Magidev,

Je te remercie pour code ca tourne d'enfer !

Juste une derniere question?! Tu n'aurais pas suivi en 2000 une formation developpement web a libramont par hasard?!

J'ai l'impression que je t"'ai deja vu et ton pseudo me dit quelque chose aussi !

Ciao

Christophe

un bouillonnais
0
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
18 août 2004 à 16:24
Et bé si lol ! avec Paul GIOT

Magidev

Pour un contact plus rapide
Ajoutez moi dans vos contacts MSN
Je suis souvent la - Merci

magidev@hotmail.com
0
Rejoignez-nous