Genre tu découpes ton fichier en fonction des "h2" trouvées, tout simplement.
Je te donne un exemple simple en php parce que c'est ce que j'ai en tête à cette heure tardive, mais c'est faisable en ce que tu veux selon le même principe (le code par le lui même, je pense) :
$page = file_get_contents('ton gros fichier.xhtml');
// ici nettoyage du code pour ne garder que ce qui est entre les balises "body"
preg_match_all('#<h([2])[^>]{0,}>(.*)</h1円>#i',$page,$match);
$match = $match[0];
$summary = array();
foreach ($match as $m) {
$page = str_replace($m,'<!-- cut here -->'.$m,$theContent); // on place un marqueur de découpe
$summary[] = striptags($m); // on stocke les titres pour créer une page index
}
$page = explode('<!-- cut here -->',$page');
foreach ($page as $num=>$chunk) {
file_put_contents($num.'.html',$chunk);
}
$index = '';
foreach ($summary as $num=>$entry) {
$index.='$entry'
}
$index = ''.$index.'';
file_put_contents('index.html',$index);
après on peut compliquer un peu plus pour formater correctement chaque fichier créé (ajouter une dtd, un head etc..)
# Une bonne vieille regexp ?
Posté par jeffcom . En réponse au message découper un fichier html en petits fichiers. Évalué à 2.
Je te donne un exemple simple en php parce que c'est ce que j'ai en tête à cette heure tardive, mais c'est faisable en ce que tu veux selon le même principe (le code par le lui même, je pense) :
$page = file_get_contents('ton gros fichier.xhtml');
// ici nettoyage du code pour ne garder que ce qui est entre les balises "body"
preg_match_all('#<h([2])[^>]{0,}>(.*)</h1円>#i',$page,$match);
$match = $match[0];
$summary = array();
foreach ($match as $m) {
$page = str_replace($m,'<!-- cut here -->'.$m,$theContent); // on place un marqueur de découpe
$summary[] = striptags($m); // on stocke les titres pour créer une page index
}
$page = explode('<!-- cut here -->',$page');
foreach ($page as $num=>$chunk) {
file_put_contents($num.'.html',$chunk);
}
$index = '';
foreach ($summary as $num=>$entry) {
$index.='$entry'
}
$index = ''.$index.'';
file_put_contents('index.html',$index);
après on peut compliquer un peu plus pour formater correctement chaque fichier créé (ajouter une dtd, un head etc..)
en espérant que ça te donne une piste...