bigornot Posté 2 Octobre 2004 Posté 2 Octobre 2004 voilà, je suis en train de créer un code ... : <?phpinclude("conf.php");function crunch($tx,$lg) { $tmp = 0; if(strlen($tx)>$lg) $tmp = strpos($tx," ",$lg); if($tmp) $tx2 = substr($tx,0,$tmp); else $tx2 = substr($tx,0,$lg); if($tx2!=$tx) $tx2.=" ..."; return $tx2;}$i = 0;mysql_connect($sql_ch,$sql_no,$sql_pa) or die ("ugyyu");mysql_select_db($sql_db) or die ("ikgogyu");$q = mysql_query("select * from articles LIMIT 0,1") or die ("ihlhbfrliuh");while($row = mysql_fetch_array($q)){$st2 = strlen($row['tx']);$s = crunch($row['tx'],$row['lg1']);echo $s;}?> il sert à ne prendre que les premiers caractères d'une chaine ... mais le probleme, c'est que le script ne retourne rien ... mais, en le modifiant un peu : <?phpinclude("conf.php");function crunch($tx,$lg) { $tmp = 0; if(strlen($tx)>$lg) $tmp = strpos($tx," ",$lg); if($tmp) $tx2 = substr($tx,0,$tmp); else $tx2 = substr($tx,0,$lg); if($tx2!=$tx) $tx2.=" ..."; return $tx2;}$i = 0;mysql_connect($sql_ch,$sql_no,$sql_pa) or die ("ugyyu");mysql_select_db($sql_db) or die ("ikgogyu");$q = mysql_query("select * from articles LIMIT 0,1") or die ("ihlhbfrliuh");while($row = mysql_fetch_array($q)){$st2 = strlen($row['tx']);crunch($row['tx'],$row['lg1']);echo "crunch($row['tx'],$row['lg1'])";}?> j'obtiens ça : Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/free.fr/0/0/bdbourgeron/repertoire/scripratik.php on line 18 que se passe t il ? pourquoi ce message ? merci !
Dan Posté 2 Octobre 2004 Posté 2 Octobre 2004 Salut, Remplaces ta dernière ligne par: echo "crunch(" . $row['tx'] . "," . $row['lg1'] . ")"; Dan
bigornot Posté 2 Octobre 2004 Auteur Posté 2 Octobre 2004 non, c'est pas ça : il m'écrit crunch(blabla,2) blabla étant le tx de la base, et 2 etant la longueur...
Anonymus Posté 2 Octobre 2004 Posté 2 Octobre 2004 Retourner les premiers caractères d'une chaine ? la fonction substr sert justement à ca Utilisation : $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" Dixit le Manuel Tu peux aussi essayer à l'envers $rest = substr("abcdef", 0, -1); // retourne "abcde"$rest = substr("abcdef", 2, -1); // retourne "cde"$rest = substr("abcdef", 4, -4); // retourne ""$rest = substr("abcdef", -3, -1); // retourne "de" A.
bigornot Posté 2 Octobre 2004 Auteur Posté 2 Octobre 2004 oui, mais l'avantage de crunch, c'est que ça ne coupe pas les mots (si possible ...). je crois ...
Anonymus Posté 3 Octobre 2004 Posté 3 Octobre 2004 Si tu mets : echo "crunch(" . $row['tx'] . "," . $row['lg1'] . ")"; Tu lui demandes d'afficher : le mot 'crunch', suivi de la chaine 'tx', une virgule, et la longueur. Si tu veux afficher le résultat de la fonction, alors c'est : echo" ".crunch($row['tx'],$row['lg1']); A.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant