Données récupérées à l'envoi d'un formulaire

sophie34 -  
 sophie34 -
Bonjour,

Je dois créer une page PHP sur laquelle seront visualisées les données récupérées sur un formulaire.

Une des ces données est un texte de plus de 100 caractères mais elle doit être tronquer à seulement 40 caractères lors de la visualisation de la page de renvoi.

Comment faut-il procéder pour afficher seulement les 40 premiers caractères?

merci :)
A voir également:

5 réponses

graffx Messages postés 7513 Statut Contributeur 1 975
 
<?php

$chaine = $tarequete['toncontenu'] ;
$lg_max = 40; //nombre de caractère autoriser

if (strlen($chaine) > $lg_max)
{
$chaine = substr($chaine, 0, $lg_max);
$last_space = strrpos($chaine, " ");
$chaine = substr($chaine, 0, $last_space)."...";
}

echo $chaine;
?>
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
http://fr.php.net/manual/fr/function.substr.php
0
sophie34
 
avion-f16: sur le lien que tu m'as soumis, on peut y lire que :

echo substr('abcdef', -1, 1);

nous retourne un f

si on s'arrête jusqu'au caractère de l'indice 1, on doit récuperer un ab et non un f

graffx: je n'ai pas compris l'instruction strrpos

sa définition est strrpos retourne la position numérique de la dernière occurence du caractère needle dans la chaîne haystack , je ne connais pas la signification de needle et de haystack :(

il y aussi: $chaine = substr($chaine, 0, $last_space)."..."; le ."..." ne sert à rien, nan?


sinon, lorsque je tape cette partie dans le code source de Kompozer (le texte de 40 caractères doit se retrouver dans une case d'un tableau):

<td style="vertical-align: top;">
<?php
$chaine = $_POST['contents'] ;
$lg_max = 40;
if (strlen($chaine) > $lg_max){
$chaine = substr($chaine, 0, $lg_max);
}
echo $chaine;
?>

aprés sauvegarde, voici le résultat de la partie "design" de Kompozer :
http://img513.imageshack.us/img513/3263/lollb.png

et sur WAMP, c'est pire:
Parse error: parse error in C:\wamp\www\tests\envoi.php on line 47
alors qu'avant cette modification, tout aller bien.

Je me dis que le code n'a pas peut-être pas été placé au bon endroit.
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Si tu mets un négatif, c'est pour commencer le "comptage" depuis la fin.
Mais si tu mets substr('abcdef', 0, 2) tu obtiendras deux caractères à partir du caractère 0 (donc depuis le début).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sophie34
 
ok, je vois mieux maintenant :)

quelqu'un pourrait m'aider pour le reste? merci :)
0