IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Couper texte html pour créer des pages


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut Couper texte html pour créer des pages
    Bonsoir,

    Je suis tombé sur la fonction http://j-reaux.developpez.com/tutori.../gestion-news/ qui permet de découper du texte en gardant les balises HTML

    Imaginons un texte de 10000 caractères. Mon intention est de découper le texte tous les 1000 caractères.

    J'aimerais savoir comment vous procéderiez pour découper les pages et insérer en base les différentes parties avec cette fonction.

    Je pensais procéder un peu comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $total_caractere = strlen($texte);
    $nombre_caractere_par_page = 1000;
     
    $tour_boucle = ceil($total_caractere/$nombre_caractere_par_page);
     
    for ($i = 1; $i <= $tour_boucle; $i++) {
     
     texte_resume($texte, $nombre_caractere_par_page);
    }
    Cependant, comment découper les 0 à 1000 premiers caractères puis les 1001 à 2000 caractères...

    Par avance merci

  2. #2
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    tu commets une petite erreur de raisonnement. Si tu prends les caractères de 0 à 1000, tu prends 1001 caractères puisque tu prends le zéro.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Effectivement, ce pourrait donc être de 0 à 999 puis 1000 à 1999.

    Cependant, comment faire pour pratiquer cette coupure ?

    Par avance, merci !

  4. #4
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Tien, je ne sais pas pourquoi, mais j'ai eu envie de m'amuser un peu . On s'amuse comme on peut.
    C'est du vite fait mal fait, mais ca à l'air fonctionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    $a = "ta chaine a traité c'est celle là";
     
    $tc = strlen($a);
    $nbc_page = 1000;
    $nb_loop = floor($tc / $nbc_page);
    $last_loop = $tc % $nbc_page;
     
    $Dest_tab = array();
    $j = 0;
     
    echo "size =".$tc." - nbloop =".$nb_loop." last_loop =".$last_loop."<br>";
     
    for( $i = 0 ; $i <= $nb_loop ; $i++){
     
    	$d_pos = $i * $nbc_page;
     
    	if( $i < $nb_loop ) $f_pos = ($d_pos + $nbc_page) - 1;
     
    	else $f_pos = $d_pos + $last_loop;
     
    	echo $d_pos." - ".$f_pos."<br>";
    	$Dest_tab[$j] = substr($a, $d_pos, $f_pos);
    	$j++;
    }
     
    print "<pre>";
    print_r($Dest_tab);
    print "</pre>";
    ?>

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Bonsoir et merci pour la proposition,

    C'est tant mieux si vous prenez du plaisir à m'aider !

    Cependant, il y a un souci, cela boucle trop de fois.

    D'où peut venir le souci ?

    EN PJ, l'exemple avec un jeu de donnée.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Désolé, mais 23567 caracteres 23 passages cela me semble on ne peut plus normal non ?

    Il faut aussi y mettre un peu du tien

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Sauf que si on regardes, cela sort plusieurs fois la dernière page !

    je ne comprends pas pourquoi il y a le souci.

    De plus, pourquoi ne pas utiliser la fonction texte_resume() ?

    De mon côté, j'ai essayé de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    	$pages = array();
    	$num_page = 0;
     
    	$nombreDeCaractParPage = 7000;
    	$reste_contenu = $texte;
    	$indice_coupe = 7000;
     
    	while($indice_coupe >= $nombreDeCaractParPage )
    	{
    		$indice_coupe = texte_resume($reste_contenu,$nombreDeCaractParPage);
    		$pages[$num_page]['texte'] = substr($reste_contenu,0,$indice_coupe);
    		//page découpée
    		$pages_texte = $pages[$num_page]['texte'];
    		echo $pages_texte.'----------------------';
    		$num_page++;
     
    		$reste_contenu = substr($reste_contenu,$indice_coupe);	
    	}

    Par-conte, j'ai modifié la fonction texte_resume() pour qu'elle me renvoi la longueur du texte coupé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ....
    return strlen($texte);
    Exemple disponible : http://www.partir-en-vtt.com/test_trunc.php

    Cependant, l'html ainsi que des mots sont coupés. La question est pourquoi ?

    merci pour le coup de main.

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Un petit coup de main sur ce problème qui je suis sur, en aidera plus d'un

    Par avance, merci.

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Est-ce que la question est trop compliquée ou mal formulée ?

    Merci par avance de me guider car j'ai besoin de cette fonction de découpe pour créer des pages en gardant le formatage HTML pour mes voyages à vélo.


Discussions similaires

  1. [MySQL] Système de découpage de texte html pour créer des pages
    Par heretik25 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 19/01/2012, 16h00
  2. [gwt]Conseil pour créer des pages dynamique
    Par cedrix57 dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 20/08/2010, 09h45
  3. Application pour générer des pages html
    Par med_anis_dk dans le forum Documents
    Réponses: 7
    Dernier message: 11/05/2007, 07h43
  4. Cherche un outils pour créer des pages web
    Par jeha dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 18/03/2007, 12h30
  5. [EDI][PHP-HTML2FPDF-WYSIWYG] Cherche un éditeur html pour créer des pdf
    Par exorus dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 11/07/2006, 12h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo