Posez votre question Signaler

[PHP]Générer un sommaire automatique [Résolu]

_juana_ 2Messages postés 21 mars 2007Date d'inscription - Dernière réponse le 29 août 2009 à 12:55
Bonjour,
Je veux générer un sommaire à partir d'un fichier HTML lu en PHP.
Il faut donc que je repère dans ce fichier des patterns <hN>titre</hN> (ou '<h[0-9]*>.*</h[0-9]*>' en expression régulière) pour constituer ce sommaire, c'est-à-dire qu'il me faut les variables titre et N.
Le problème c'est que je ne trouve pas comment extraire ces infos de mon fichier !
Merci pour votre aide.
Lire la suite 

[PHP]Générer un sommaire automatique »

4 réponses
Réponse
+0
moins plus
Expressions rationnelles compatibles Perl en PHP:
http://fr.php.net/manual/fr/ref.pcre.php

l'instruction preg_match permet de faire ce genre de manipulation:
http://fr.php.net/manual/fr/function.preg-match.php
Ajouter un commentaire
Réponse
+0
moins plus
Merci.
C'est pas exactement ce que je cherchais mais finalement j'ai bidouiller un truc avec preg_split :

function makeTableOfContents($file) {
echo "\t<b>Table of contents</b>\n";
echo "\t<ol>\n";

$tableau = file($file);
$pattern='<h[0-9]*>.*</h[0-9]*>';
$oldN = 3;
// For each line of the HTML file, gets <hn>title</hn>
while(list($cle,$str) = each($tableau)) {
// If line contains pattern
if (eregi($pattern, $str)) {
$chars = preg_split('/<h/', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
// Get n
$fullN = $chars[1][0];
$n = substr($fullN, 0, 1); // only works for digit titles (from h0 to h9)
// Get title
$fullTitle = substr($fullN, 2);
$closeTag = '/</';//.$n.'>/';
$titleSplit = preg_split($closeTag, $fullTitle, -1, PREG_SPLIT_OFFSET_CAPTURE);
$title = substr($fullTitle, 0, ($titleSplit[1][1]-1));

// Display list
if($n >= 3) { // Don't display titles h1 and h2
if ($n > $oldN) {
echo "\t<ol>\n";
}
else if ($n < $oldN) {
echo "\t</ol>\n\t</li>\n";
}
echo "\t<li>".$title."\n";
$oldN = $n;
}
}
}
fclose($file);
echo "\t</ol>\n";
}
Ajouter un commentaire
Réponse
+0
moins plus
je veux générer automatiquement le somaire d'un document de 70p comment procéder
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour ce script vraiment pratique !

Par contre je pense que la ligne qui ferme le fichier est inutile, la fonction file s'en occupe déjà.
Donc le fclose($file) est à supprimer, il génère une erreur chez moi...

Merci encore !
Ajouter un commentaire
Ce document intitulé « [PHP]Générer un sommaire automatique » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?