[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / outils / verstexte_fonctions.php
1 <?php
2
3 // filtre qui extrait le contenu texte d'une page html pour rendre du texte plein
4 function 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 entites 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
66 function version_texte($texte){
67 $texte = charset2unicode($texte);
68
69 // accentuer le texte avant de suprimer les tags
70 $texte = strtr($texte, array('&amp;'=>'&', '&quot;'=>'"', '&lt;'=>'<', '&gt;'=>'>', '&egrave;'=>'&#232;', '&eacute;'=>'&#233;', '&agrave;' => '&#224;') );
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 // voir : TODO.txt
87
88 $texte = preg_replace($cherche, $remplace, $texte);
89 return $texte;
90 }
91 ?>