Page 1 sur 1

Limitation de caractère sur une page d'affichage

Posté : 20 oct. 2010, 16:06
par orell1
Bonjour à tous,

Est-ce que quelqu'un pourrait m'orienter sur ce point svp:
Je souhaiterai limiter la taille d'affichage d'une page lorsque que je saisie du texte.

Exemple je saisie une page avec énormément de texte, donc il y a beaucoup beaucoup de scroll...
Est-il possible d'ajouter une fonction? un script? qui permette de dire : afficher la taille height:1200px; par exemple puis lien suite pour afficher la suite du texte etc...
ou limiter en nombre de mots ou de caractères...

Si le texte est limité à 1000 mots et que le texte saisi fait 1500 mots alors il y a deux pages d'affichages...

merci pour votre aide.

Re: Limitation de caractère sur une page d'affichage

Posté : 20 oct. 2010, 17:43
par AB
Pour limiter l'affichage à un nombre précis de caractères tu peux utiliser ceci :
function Truncate($string, $size, $encodage = 'utf-8') {

        $chaine = mb_substr($string, 0, $size, $encodage); // coupe la chaine à la taille max désirée

        if ($chaine == mb_substr($string, 0, $size + 1, $encodage)) // pas de modif    
        return $chaine;
               
        // recherche le dernier espace (s'il y en a un)
        if ($lastSpace = strrpos($chaine, ' '))
        return substr($chaine, 0, $lastSpace) . '...'; 
        else
        return $chaine . '...';
}
$string est ta chaine
$size le nombre de caractères avant que le texte ne soit tronqué
$encodage pour définir ton encodage

La chaine n'est tronquée que sur un espace (donc les mots ne sont pas coupés).

Re: Limitation de caractère sur une page d'affichage

Posté : 20 oct. 2010, 17:57
par orell1
Merci beaucoup!
Par contre ce code n'est pas valable pour afficher le reste du texte sur une autre page ???

Re: Limitation de caractère sur une page d'affichage

Posté : 21 oct. 2010, 00:21
par AB
Bah ce code fait ce qu'il sait faire, ensuite à toi de compléter/modifier pour faire ce que tu veux faire.

Tu parles de "l'autre page" mais il pourrait y en avoir plusieurs ? et tu voudrais un système de pagination automatique sur éventuellement plusieurs pages ?

C'est pas impossible mais dans ce cas tu pourrais avoir par exemple un titre qui se retrouve tout en bas de page... ou alors il faudrait pourvoir gérer ce cas et cela deviendrait beaucoup beaucoup plus compliqué.

Ou alors tu pourrais toi-même indiquer un changement de page par un tag spécial qui serait insérer lors de la saisie du texte pour conserver le contrôle de la mise en page.

Pour dire qu'il faut que tu sois plus précis et que tu prennes bien conscience des problèmes et possibilités.

Re: Limitation de caractère sur une page d'affichage

Posté : 22 oct. 2010, 22:41
par orell1
oui je comprends tout à fait....
Effectivement il peut y avoir plusieurs page... tout dépendra du texte à saisir...
En fait ce que je souhaite éviter c'est qu'il y ait 50 000 scroll pour lire le ou les textes... ce n'est pas esthétique ! et j'aime les choses bien rangée! Mdr

Merci pour ton aide.

P.S: je n'avais pas ta réponse désolé... :oops:

Re: Limitation de caractère sur une page d'affichage

Posté : 23 oct. 2010, 04:27
par AB
Ben si tu aimes les choses bien rangées pour la mise en page, il ne faut pas te fier aux automatismes... Imagines que tu limites à 1500 caractères et qu'il y en ait 1510, la deuxième page n'aura que deux ou trois mots... alors que tu aurais pu allonger à peine la première pour les faire tenir.

Le plus simple et efficace serait que tu mettes dans ton texte un tag genre [np] pour indiquer une nouvelle page. Ainsi tu pourrais indiquer toi-même les changements de page à bon escient lors de la saisie et techniquement il te suffirais de faire un explode ('[np]',$texte) pour avoir tes différentes pages et faire ta pagination. Ce système te permettrait également d'éviter les titre en bas de pages etc, bref tu aurais la maîtrise du changement de page.

Re: Limitation de caractère sur une page d'affichage

Posté : 23 oct. 2010, 13:15
par orell1
ok. je vois est-ce qu'il est passible de l'adapter à une page HTML?

Merci

Re: Limitation de caractère sur une page d'affichage

Posté : 23 oct. 2010, 18:16
par AB
Oui facilement si c'est php qui gère le html...

Si tu utilises un tag '[np]' pour séparer tes pages
<?php

$texte = 'quelques mots et une césure [np] puis une seconde page [np] et enfin une troisième';

$tab_page = explode ('[np]',$texte);

$affiche = isset($_GET['p'],$tab_page[$_GET['p']])? $tab_page[$_GET['p']] : $tab_page[0] ;

echo $affiche;

echo '<p>';
foreach ($tab_page as $key => $value) echo '<a href = "?p='.$key.'">'.($key + 1).'</a>&nbsp;';
echo '</p>';
?>

Re: Limitation de caractère sur une page d'affichage

Posté : 24 oct. 2010, 21:36
par orell1
Non malheureusement c'est gérer par du HTML... dur!

Re: Limitation de caractère sur une page d'affichage

Posté : 25 oct. 2010, 19:23
par AB
Comment ça, ton formulaire enregistre les données dans quoi ? et pourquoi alors postes-tu dans le forum php ? :-k