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

Fermé
sophie34 - 29 déc. 2009 à 18:47
 sophie34 - 29 déc. 2009 à 22:23
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 :)

5 réponses

graffx Messages postés 6430 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 2 017
29 déc. 2009 à 18:53
<?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 19125 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 mars 2023 4 468
29 déc. 2009 à 19:09
http://fr.php.net/manual/fr/function.substr.php
0
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 19125 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 mars 2023 4 468
29 déc. 2009 à 20:17
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
ok, je vois mieux maintenant :)

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