source: spip-zone/_plugins_/_stable_/version_texte/verstexte_fonctions.php @ 26070

Last change on this file since 26070 was 5548, checked in by fil@…, 15 years ago

rangement des plugins celbataires : comarquage/1_9_0/ console/1_9_0/ csv_import/1_9_0/ desactiver_cache/1_9_0/ desactiver_flash/1_9_0/ dewplayer/1_9_0/ ecard/1_9_1/ marqueur_stats/1_9_0/ modeles_liste/1_9_1/ orientation/1_9_0/ phpmyvisites/1_9_0/ pim_agenda/1_9_0/ profil_etendu/1_9_1/ push/1_9_0/ recherche_etendue/1_9_0/ sitemap/1_9_0/ smallcaps/1_9_0/ spip-lettres/1_9_0/ squelette_profil/1_9_0/ squelettes_par_mots_cle/1_9_0/ squelettes_update/1_9_0/ switcher/1_9_0/ timeline/1_9_0/ toutmulti/1_9_0/ tri_auteurs/1_9_0/ tri_mots/1_9_0/ version_texte/1_9_0/ widget_calendar/1_9_0/

File size: 4.9 KB
Line 
1<?php
2
3// filtre qui extrait le contenu texte d'une page html pour rendre du texte plein
4function version_plein_texte($texte){
5
6        $texte = charset2unicode($texte);
7        $texte = strtr($texte, array('&amp;'=>'&', '&quot;'=>'"', '&lt;'=>'<', '&gt;'=>'>', '&egrave;'=>'&#232;', '&eacute;'=>'&#233;', '&agrave;' => '&#224;') );
8       
9        $cherche = array (
10/*a1*/          ',</?h1[^>]*>,',
11/*a2*/          ',</?h2[^>]*>,',
12/*a3*/          ',<h3[^>]*>,',
13/*a3*/          ',</h3[^>]*>,',
14/*01*/          '@<script[^>]*?>.*?</script>@si', // Supprime le javascript
15/*02*/          '@<style[^>]*?>.*?</style>@si', // Supprime les styles inline
16/*03*/          ",<link[^>]*>,Uims" ,             // les css
17/*04*/          ",<img[^>]*alt=['\"]([^'\"]*)['\"][^>]*>,Uims", // les images
18/*05*/          ',(<(div|br|p)),i',
19/*06*/          '@<[\/\!]*?[^<>]*?'.'>@si',          // Supprime les balises HTML
20/*07*/          '@([\r\n])[\s]+@',              // Supprime les espaces
21/*08*/          ',[\r\n][_]{2},sm',
22/*09*/          '@&(quot|#34);@i',               // Remplace les entités HTML
23/*10*/          '@&(amp|#38);@i',
24/*11*/          '@&(lt|#60);@i',
25/*12*/          '@&(gt|#62);@i',
26/*13*/          '@&(nbsp|#160);@i',
27/*14*/          '@&(iexcl|#161);@i',
28/*15*/          '@&(cent|#162);@i',
29/*16*/          '@&(pound|#163);@i',
30/*17*/          '@&(copy|#169);@i',
31/*18*/          '@&#8217;@i',
32/*19*/          '@&#(\d+);@e'
33        );                                                                                                                             
34       
35        $remplace = array (
36/*a1*/          "\n__--------------------------------------------------------\n",
37/*a2*/          "\n__...........\n",
38/*a3*/          "\n__\n__+++",
39/*a3*/          "+++",
40/*01*/          '',
41/*02*/          '',
42/*03*/          '',
43/*04*/          '[\1]',
44/*05*/          "\n__\\1",
45/*06*/          '',
46/*07*/          '\1',
47/*08*/          "\n",
48/*09*/          '"',
49/*10*/          '&',
50/*11*/          '<',
51/*12*/          '>',
52/*13*/          ' ',
53/*14*/          chr(161),
54/*15*/          chr(162),
55/*16*/          chr(163),
56/*17*/          chr(169),
57/*18*/          "'",
58/*19*/          'chr(\1)' // Evaluation comme PHP
59        );
60       
61        $texte = preg_replace($cherche, $remplace, $texte);
62        return $texte; 
63}
64
65// filtre qui extrait le contenu texte d'une page html, a l'exclusion de quelques balises elementaires
66function version_texte($texte){
67        $texte = charset2unicode($texte);
68        $texte = strtr($texte, array('&amp;'=>'&', '&quot;'=>'"', '&lt;'=>'<', '&gt;'=>'>', '&egrave;'=>'&#232;', '&eacute;'=>'&#233;', '&agrave;' => '&#224;') );
69
70        // accentuer le texte avant de suprimer les tags
71       
72        $cherche = array (
73/*01*/          '@<script[^>]*?>.*?</script>@si', // Supprime le javascript
74/*02*/          '@<style[^>]*?>.*?</style>@si', // Supprime les styles inline
75/*03*/          ",<link[^>]*>,Uims" ,             // les css
76/*04*/          ",<img[^>]*alt=['\"]([^'\"]*)['\"][^>]*>,Uims", // les images
77        );                                                                                                                             
78       
79        $remplace = array (
80/*01*/          '',
81/*02*/          '',
82/*03*/          '',
83/*04*/          '[\1]',
84        );
85
86// traitement des ancres
87// Nettoyage des liens des notes de bas de page
88//$texte = preg_replace(",<a href=\"#n(b|h)[0-9]+-[0-9]+\" name=\"n(b|h)[0-9]+-[0-9]+\" class=\"spip_note\">([0-9]+)</a>", "\\3", $texte);
89// Supprimer tous les liens internes
90//$patterns = array("/\<a href=['\"]#(.*?)['\"][^>]*>(.*?)<\/a>/");
91//$replacements = array("\\2");
92//$out = preg_replace($patterns,$replacements, $out);
93
94/*$out = ereg_replace("<h1[^>]*>", "\n--------------------------------------------------------\n", $out);
95$out = str_replace("</h1>", "\n--------------------------------------------------------\n", $out);
96$out = ereg_replace("<h2[^>]*>", "\n............... ", $out);
97$out = str_replace("</h2>", " ...............\n", $out);
98$out = ereg_replace("<h3[^>]*>", "\n + ", $out);
99$out = str_replace("</h3>", "\n", $out);
100$out = str_replace("<p class=\"spip\"[^>]*>", "\n", $out);
101
102// Les notes de bas de page
103$out = str_replace("<p class=\"spip_note\">", "\n", $out);
104 $out = ereg_replace("<sup>([0-9]+)</sup>", "[\\1]", $out);
105
106    //$out = str_replace('<br /><img class=\'spip_puce\' src=\'puce.gif\' alt=\'-\' border=\'0\'>', "\n".'-', $out);
107$out = ereg_replace ('<li[^>]>', "\n".'-', $out);
108    //$out = str_replace('<li>', "\n".'-', $out);
109
110
111    // accentuation du gras -
112    // <b>texte</b> -> *texte*
113    $out = ereg_replace ('<b[^>|r]*>','*' ,$out);
114    $out = str_replace ('</b>','*' ,$out);
115
116    // accentuation de l'italique
117    // <i>texte</i> -> *texte*
118    $out = ereg_replace ('<i[^>|mg]*>','*' ,$out);
119    $out = str_replace ('</i>','*' ,$out);
120
121        $out = str_replace('&oelig;', 'oe', $out);
122        $out = str_replace("&nbsp;", " ", $out);
123        $out = filtrer_entites($out);
124
125        $out = supprimer_tags($out);
126
127        //$out = ereg_replace("^(\n|\r|\r\n| )+", "", $out);
128                 //$out = ereg_replace("^( )", "", $out);
129                 //$out = ereg_replace("(\n\n\n)+", "", $out) ;
130                 //$out = ereg_replace("(\n\n)+", "", $out) ;
131                 $out = str_replace(chr(160), "", $out);
132                 $out = str_replace("\x0B", "", $out);
133                 $out = ereg_replace("\t", "", $out) ;
134                 //$out = ereg_replace("[\n]{3,}", "\n\n", $out);
135                 $out = ereg_replace("[ ]{3,}", "", $out);
136                  // Bring down number of empty lines to 2 max
137        $out = preg_replace("/\n\s+\n/", "\n\n", $out);
138        $out = preg_replace("/[\n]{3,}/", "\n\n", $out);
139               
140                //$out = trim($out) ;*/ 
141        $texte = preg_replace($cherche, $remplace, $texte);
142        return $texte;
143}
144?>
Note: See TracBrowser for help on using the repository browser.