Completed
Push — master ( 515cb3...63ef06 )
by cam
01:06
created
ecrire/inc/texte_mini.php 2 patches
Indentation   +374 added lines, -374 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 include_spip('inc/filtres');
23 23
 include_spip('inc/lang');
@@ -39,21 +39,21 @@  discard block
 block discarded – undo
39 39
  **/
40 40
 function definir_puce() {
41 41
 
42
-	// Attention au sens, qui n'est pas defini de la meme facon dans
43
-	// l'espace prive (spip_lang est la langue de l'interface, lang_dir
44
-	// celle du texte) et public (spip_lang est la langue du texte)
45
-	$dir = _DIR_RESTREINT ? lang_dir() : lang_dir($GLOBALS['spip_lang']);
42
+    // Attention au sens, qui n'est pas defini de la meme facon dans
43
+    // l'espace prive (spip_lang est la langue de l'interface, lang_dir
44
+    // celle du texte) et public (spip_lang est la langue du texte)
45
+    $dir = _DIR_RESTREINT ? lang_dir() : lang_dir($GLOBALS['spip_lang']);
46 46
 
47
-	$p = 'puce' . (test_espace_prive() ? '_prive' : '');
48
-	if ($dir == 'rtl') {
49
-		$p .= '_rtl';
50
-	}
47
+    $p = 'puce' . (test_espace_prive() ? '_prive' : '');
48
+    if ($dir == 'rtl') {
49
+        $p .= '_rtl';
50
+    }
51 51
 
52
-	if (!isset($GLOBALS[$p])) {
53
-		$GLOBALS[$p] = '<span class="spip-puce '.$dir.'"><b>–</b></span>';
54
-	}
52
+    if (!isset($GLOBALS[$p])) {
53
+        $GLOBALS[$p] = '<span class="spip-puce '.$dir.'"><b>–</b></span>';
54
+    }
55 55
 
56
-	return $GLOBALS[$p];
56
+    return $GLOBALS[$p];
57 57
 }
58 58
 
59 59
 
@@ -61,13 +61,13 @@  discard block
 block discarded – undo
61 61
 // dont on souhaite qu'ils provoquent un saut de paragraphe
62 62
 
63 63
 if (!defined('_BALISES_BLOCS')) {
64
-	define('_BALISES_BLOCS',
65
-	'address|applet|article|aside|blockquote|button|center|d[ltd]|div|fieldset|fig(ure|caption)|footer|form|h[1-6r]|hgroup|head|header|iframe|li|map|marquee|nav|noscript|object|ol|pre|section|t(able|[rdh]|body|foot|extarea)|ul|script|style'
66
-	);
64
+    define('_BALISES_BLOCS',
65
+    'address|applet|article|aside|blockquote|button|center|d[ltd]|div|fieldset|fig(ure|caption)|footer|form|h[1-6r]|hgroup|head|header|iframe|li|map|marquee|nav|noscript|object|ol|pre|section|t(able|[rdh]|body|foot|extarea)|ul|script|style'
66
+    );
67 67
 }
68 68
 
69 69
 if (!defined('_BALISES_BLOCS_REGEXP')) {
70
-	define('_BALISES_BLOCS_REGEXP', ',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS');
70
+    define('_BALISES_BLOCS_REGEXP', ',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS');
71 71
 }
72 72
 
73 73
 //
@@ -79,26 +79,26 @@  discard block
 block discarded – undo
79 79
 // echappe est un div ou un span
80 80
 // https://code.spip.net/@code_echappement
81 81
 function code_echappement($rempl, $source = '', $no_transform = false, $mode = null) {
82
-	if (!strlen($rempl)) {
83
-		return '';
84
-	}
85
-
86
-	// Tester si on echappe en span ou en div
87
-	if (is_null($mode) or !in_array($mode, array('div', 'span'))) {
88
-		$mode = preg_match(',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS', $rempl) ? 'div' : 'span';
89
-	}
90
-
91
-	// Decouper en morceaux, base64 a des probleme selon la taille de la pile
92
-	$taille = 30000;
93
-	$return = "";
94
-	for ($i = 0; $i < strlen($rempl); $i += $taille) {
95
-		// Convertir en base64 et cacher dans un attribut
96
-		// utiliser les " pour eviter le re-encodage de ' et &#8217
97
-		$base64 = base64_encode(substr($rempl, $i, $taille));
98
-		$return .= "<$mode class=\"base64$source\" title=\"$base64\"></$mode>";
99
-	}
100
-
101
-	return $return;
82
+    if (!strlen($rempl)) {
83
+        return '';
84
+    }
85
+
86
+    // Tester si on echappe en span ou en div
87
+    if (is_null($mode) or !in_array($mode, array('div', 'span'))) {
88
+        $mode = preg_match(',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS', $rempl) ? 'div' : 'span';
89
+    }
90
+
91
+    // Decouper en morceaux, base64 a des probleme selon la taille de la pile
92
+    $taille = 30000;
93
+    $return = "";
94
+    for ($i = 0; $i < strlen($rempl); $i += $taille) {
95
+        // Convertir en base64 et cacher dans un attribut
96
+        // utiliser les " pour eviter le re-encodage de ' et &#8217
97
+        $base64 = base64_encode(substr($rempl, $i, $taille));
98
+        $return .= "<$mode class=\"base64$source\" title=\"$base64\"></$mode>";
99
+    }
100
+
101
+    return $return;
102 102
 
103 103
 }
104 104
 
@@ -106,84 +106,84 @@  discard block
 block discarded – undo
106 106
 // Echapper les <html>...</ html>
107 107
 // https://code.spip.net/@traiter_echap_html_dist
108 108
 function traiter_echap_html_dist($regs) {
109
-	return $regs[3];
109
+    return $regs[3];
110 110
 }
111 111
 
112 112
 // Echapper les <pre>...</ pre>
113 113
 function traiter_echap_pre_dist($regs) {
114
-	// echapper les <code> dans <pre>
115
-	$pre = $regs[3];
116
-
117
-	// echapper les < dans <code>
118
-	// on utilise _PROTEGE_BLOCS pour simplifier le code et la maintenance, mais on est interesse que par <code>
119
-	if (strpos($pre, "<") !== false
120
-		and preg_match_all(_PROTEGE_BLOCS, $pre, $matches, PREG_SET_ORDER)){
121
-
122
-		foreach ($matches as $m){
123
-			if ($m[1]==='code'){
124
-				$code = "<code" . $m[2] . ">" . spip_htmlspecialchars($m[3]) . "</code>";
125
-				$pre = str_replace($m[0], $code, $pre);
126
-			}
127
-		}
128
-	}
129
-	return "<pre>$pre</pre>";
114
+    // echapper les <code> dans <pre>
115
+    $pre = $regs[3];
116
+
117
+    // echapper les < dans <code>
118
+    // on utilise _PROTEGE_BLOCS pour simplifier le code et la maintenance, mais on est interesse que par <code>
119
+    if (strpos($pre, "<") !== false
120
+        and preg_match_all(_PROTEGE_BLOCS, $pre, $matches, PREG_SET_ORDER)){
121
+
122
+        foreach ($matches as $m){
123
+            if ($m[1]==='code'){
124
+                $code = "<code" . $m[2] . ">" . spip_htmlspecialchars($m[3]) . "</code>";
125
+                $pre = str_replace($m[0], $code, $pre);
126
+            }
127
+        }
128
+    }
129
+    return "<pre>$pre</pre>";
130 130
 }
131 131
 
132 132
 // Echapper les <code>...</ code>
133 133
 // https://code.spip.net/@traiter_echap_code_dist
134 134
 function traiter_echap_code_dist($regs) {
135
-	list(, , $att, $corps) = $regs;
136
-	$echap = spip_htmlspecialchars($corps); // il ne faut pas passer dans entites_html, ne pas transformer les &#xxx; du code !
137
-
138
-	// ne pas mettre le <div...> s'il n'y a qu'une ligne
139
-	if (is_int(strpos($echap, "\n"))) {
140
-		// supprimer les sauts de ligne debut/fin
141
-		// (mais pas les espaces => ascii art).
142
-		$echap = preg_replace("/^[\n\r]+|[\n\r]+$/s", "", $echap);
143
-		$echap = nl2br($echap);
144
-		$echap = "<div style='text-align: left;' "
145
-			. "class='spip_code' dir='ltr'><code$att>"
146
-			. $echap . "</code></div>";
147
-	} else {
148
-		$echap = "<code$att class='spip_code' dir='ltr'>" . $echap . "</code>";
149
-	}
150
-
151
-	$echap = str_replace("\t", "&nbsp; &nbsp; &nbsp; &nbsp; ", $echap);
152
-	$echap = str_replace("  ", " &nbsp;", $echap);
153
-
154
-	return $echap;
135
+    list(, , $att, $corps) = $regs;
136
+    $echap = spip_htmlspecialchars($corps); // il ne faut pas passer dans entites_html, ne pas transformer les &#xxx; du code !
137
+
138
+    // ne pas mettre le <div...> s'il n'y a qu'une ligne
139
+    if (is_int(strpos($echap, "\n"))) {
140
+        // supprimer les sauts de ligne debut/fin
141
+        // (mais pas les espaces => ascii art).
142
+        $echap = preg_replace("/^[\n\r]+|[\n\r]+$/s", "", $echap);
143
+        $echap = nl2br($echap);
144
+        $echap = "<div style='text-align: left;' "
145
+            . "class='spip_code' dir='ltr'><code$att>"
146
+            . $echap . "</code></div>";
147
+    } else {
148
+        $echap = "<code$att class='spip_code' dir='ltr'>" . $echap . "</code>";
149
+    }
150
+
151
+    $echap = str_replace("\t", "&nbsp; &nbsp; &nbsp; &nbsp; ", $echap);
152
+    $echap = str_replace("  ", " &nbsp;", $echap);
153
+
154
+    return $echap;
155 155
 }
156 156
 
157 157
 // Echapper les <cadre>...</ cadre> aka <frame>...</ frame>
158 158
 // https://code.spip.net/@traiter_echap_cadre_dist
159 159
 function traiter_echap_cadre_dist($regs) {
160
-	$echap = trim(entites_html($regs[3]));
161
-	// compter les lignes un peu plus finement qu'avec les \n
162
-	$lignes = explode("\n", trim($echap));
163
-	$n = 0;
164
-	foreach ($lignes as $l) {
165
-		$n += floor(strlen($l) / 60) + 1;
166
-	}
167
-	$n = max($n, 2);
168
-	$echap = "\n<textarea readonly='readonly' cols='40' rows='$n' class='spip_cadre' dir='ltr'>$echap</textarea>";
169
-
170
-	return $echap;
160
+    $echap = trim(entites_html($regs[3]));
161
+    // compter les lignes un peu plus finement qu'avec les \n
162
+    $lignes = explode("\n", trim($echap));
163
+    $n = 0;
164
+    foreach ($lignes as $l) {
165
+        $n += floor(strlen($l) / 60) + 1;
166
+    }
167
+    $n = max($n, 2);
168
+    $echap = "\n<textarea readonly='readonly' cols='40' rows='$n' class='spip_cadre' dir='ltr'>$echap</textarea>";
169
+
170
+    return $echap;
171 171
 }
172 172
 
173 173
 // https://code.spip.net/@traiter_echap_frame_dist
174 174
 function traiter_echap_frame_dist($regs) {
175
-	return traiter_echap_cadre_dist($regs);
175
+    return traiter_echap_cadre_dist($regs);
176 176
 }
177 177
 
178 178
 // https://code.spip.net/@traiter_echap_script_dist
179 179
 function traiter_echap_script_dist($regs) {
180
-	// rendre joli (et inactif) si c'est un script language=php
181
-	if (preg_match(',<script\b[^>]+php,ims', $regs[0])) {
182
-		return highlight_string($regs[0], true);
183
-	}
180
+    // rendre joli (et inactif) si c'est un script language=php
181
+    if (preg_match(',<script\b[^>]+php,ims', $regs[0])) {
182
+        return highlight_string($regs[0], true);
183
+    }
184 184
 
185
-	// Cas normal : le script passe tel quel
186
-	return $regs[0];
185
+    // Cas normal : le script passe tel quel
186
+    return $regs[0];
187 187
 }
188 188
 
189 189
 define('_PROTEGE_BLOCS', ',<(html|pre|code|cadre|frame|script|style)(\s[^>]*)?>(.*)</\1>,UimsS');
@@ -203,69 +203,69 @@  discard block
 block discarded – undo
203 203
  * @return string|string[]
204 204
  */
205 205
 function echappe_html(
206
-	$letexte,
207
-	$source = '',
208
-	$no_transform = false,
209
-	$preg = '',
210
-	$callback_prefix = ''
206
+    $letexte,
207
+    $source = '',
208
+    $no_transform = false,
209
+    $preg = '',
210
+    $callback_prefix = ''
211 211
 ) {
212
-	if (!is_string($letexte) or !strlen($letexte)) {
213
-		return $letexte;
214
-	}
215
-
216
-	// si le texte recu est long PCRE risque d'exploser, on
217
-	// fait donc un mic-mac pour augmenter pcre.backtrack_limit
218
-	if (($len = strlen($letexte)) > 100000) {
219
-		if (!$old = @ini_get('pcre.backtrack_limit')) {
220
-			$old = 100000;
221
-		}
222
-		if ($len > $old) {
223
-			$a = @ini_set('pcre.backtrack_limit', $len);
224
-			spip_log("ini_set pcre.backtrack_limit=$len ($old)");
225
-		}
226
-	}
227
-
228
-	if (($preg or strpos($letexte, "<") !== false)
229
-		and preg_match_all($preg ? $preg : _PROTEGE_BLOCS, $letexte, $matches, PREG_SET_ORDER)
230
-	) {
231
-		foreach ($matches as $regs) {
232
-			// echappements tels quels ?
233
-			if ($no_transform) {
234
-				$echap = $regs[0];
235
-			} // sinon les traiter selon le cas
236
-			else {
237
-				if (function_exists($f = $callback_prefix . 'traiter_echap_' . strtolower($regs[1]))
238
-				  or function_exists($f = $f . '_dist')) {
239
-					$echap = $f($regs);
240
-				}
241
-			}
242
-
243
-			$p = strpos($letexte, $regs[0]);
244
-			$letexte = substr_replace($letexte, code_echappement($echap, $source, $no_transform), $p, strlen($regs[0]));
245
-		}
246
-	}
247
-
248
-	if ($no_transform) {
249
-		return $letexte;
250
-	}
251
-
252
-	// Echapper le php pour faire joli (ici, c'est pas pour la securite)
253
-	// seulement si on a echappe les <script>
254
-	// (derogatoire car on ne peut pas faire passer < ? ... ? >
255
-	// dans une callback autonommee
256
-	if (strpos($preg ? $preg : _PROTEGE_BLOCS, 'script') !== false) {
257
-		if (strpos($letexte, "<" . "?") !== false and preg_match_all(',<[?].*($|[?]>),UisS',
258
-				$letexte, $matches, PREG_SET_ORDER)
259
-		) {
260
-			foreach ($matches as $regs) {
261
-				$letexte = str_replace($regs[0],
262
-					code_echappement(highlight_string($regs[0], true), $source),
263
-					$letexte);
264
-			}
265
-		}
266
-	}
267
-
268
-	return $letexte;
212
+    if (!is_string($letexte) or !strlen($letexte)) {
213
+        return $letexte;
214
+    }
215
+
216
+    // si le texte recu est long PCRE risque d'exploser, on
217
+    // fait donc un mic-mac pour augmenter pcre.backtrack_limit
218
+    if (($len = strlen($letexte)) > 100000) {
219
+        if (!$old = @ini_get('pcre.backtrack_limit')) {
220
+            $old = 100000;
221
+        }
222
+        if ($len > $old) {
223
+            $a = @ini_set('pcre.backtrack_limit', $len);
224
+            spip_log("ini_set pcre.backtrack_limit=$len ($old)");
225
+        }
226
+    }
227
+
228
+    if (($preg or strpos($letexte, "<") !== false)
229
+        and preg_match_all($preg ? $preg : _PROTEGE_BLOCS, $letexte, $matches, PREG_SET_ORDER)
230
+    ) {
231
+        foreach ($matches as $regs) {
232
+            // echappements tels quels ?
233
+            if ($no_transform) {
234
+                $echap = $regs[0];
235
+            } // sinon les traiter selon le cas
236
+            else {
237
+                if (function_exists($f = $callback_prefix . 'traiter_echap_' . strtolower($regs[1]))
238
+                  or function_exists($f = $f . '_dist')) {
239
+                    $echap = $f($regs);
240
+                }
241
+            }
242
+
243
+            $p = strpos($letexte, $regs[0]);
244
+            $letexte = substr_replace($letexte, code_echappement($echap, $source, $no_transform), $p, strlen($regs[0]));
245
+        }
246
+    }
247
+
248
+    if ($no_transform) {
249
+        return $letexte;
250
+    }
251
+
252
+    // Echapper le php pour faire joli (ici, c'est pas pour la securite)
253
+    // seulement si on a echappe les <script>
254
+    // (derogatoire car on ne peut pas faire passer < ? ... ? >
255
+    // dans une callback autonommee
256
+    if (strpos($preg ? $preg : _PROTEGE_BLOCS, 'script') !== false) {
257
+        if (strpos($letexte, "<" . "?") !== false and preg_match_all(',<[?].*($|[?]>),UisS',
258
+                $letexte, $matches, PREG_SET_ORDER)
259
+        ) {
260
+            foreach ($matches as $regs) {
261
+                $letexte = str_replace($regs[0],
262
+                    code_echappement(highlight_string($regs[0], true), $source),
263
+                    $letexte);
264
+            }
265
+        }
266
+    }
267
+
268
+    return $letexte;
269 269
 }
270 270
 
271 271
 //
@@ -274,52 +274,52 @@  discard block
 block discarded – undo
274 274
 // par propre() : exemple dans multi et dans typo()
275 275
 // https://code.spip.net/@echappe_retour
276 276
 function echappe_retour($letexte, $source = '', $filtre = "") {
277
-	if (strpos($letexte, "base64$source")) {
278
-		# spip_log(spip_htmlspecialchars($letexte));  ## pour les curieux
279
-		$max_prof = 5;
280
-		while (strpos($letexte, "<") !== false
281
-			and
282
-			preg_match_all(',<(span|div)\sclass=[\'"]base64' . $source . '[\'"]\s(.*)>\s*</\1>,UmsS',
283
-				$letexte, $regs, PREG_SET_ORDER)
284
-			and $max_prof--) {
285
-			foreach ($regs as $reg) {
286
-				$rempl = base64_decode(extraire_attribut($reg[0], 'title'));
287
-				// recherche d'attributs supplementaires
288
-				$at = array();
289
-				foreach (array('lang', 'dir') as $attr) {
290
-					if ($a = extraire_attribut($reg[0], $attr)) {
291
-						$at[$attr] = $a;
292
-					}
293
-				}
294
-				if ($at) {
295
-					$rempl = '<' . $reg[1] . '>' . $rempl . '</' . $reg[1] . '>';
296
-					foreach ($at as $attr => $a) {
297
-						$rempl = inserer_attribut($rempl, $attr, $a);
298
-					}
299
-				}
300
-				if ($filtre) {
301
-					$rempl = $filtre($rempl);
302
-				}
303
-				$letexte = str_replace($reg[0], $rempl, $letexte);
304
-			}
305
-		}
306
-	}
307
-
308
-	return $letexte;
277
+    if (strpos($letexte, "base64$source")) {
278
+        # spip_log(spip_htmlspecialchars($letexte));  ## pour les curieux
279
+        $max_prof = 5;
280
+        while (strpos($letexte, "<") !== false
281
+            and
282
+            preg_match_all(',<(span|div)\sclass=[\'"]base64' . $source . '[\'"]\s(.*)>\s*</\1>,UmsS',
283
+                $letexte, $regs, PREG_SET_ORDER)
284
+            and $max_prof--) {
285
+            foreach ($regs as $reg) {
286
+                $rempl = base64_decode(extraire_attribut($reg[0], 'title'));
287
+                // recherche d'attributs supplementaires
288
+                $at = array();
289
+                foreach (array('lang', 'dir') as $attr) {
290
+                    if ($a = extraire_attribut($reg[0], $attr)) {
291
+                        $at[$attr] = $a;
292
+                    }
293
+                }
294
+                if ($at) {
295
+                    $rempl = '<' . $reg[1] . '>' . $rempl . '</' . $reg[1] . '>';
296
+                    foreach ($at as $attr => $a) {
297
+                        $rempl = inserer_attribut($rempl, $attr, $a);
298
+                    }
299
+                }
300
+                if ($filtre) {
301
+                    $rempl = $filtre($rempl);
302
+                }
303
+                $letexte = str_replace($reg[0], $rempl, $letexte);
304
+            }
305
+        }
306
+    }
307
+
308
+    return $letexte;
309 309
 }
310 310
 
311 311
 // Reinserer le javascript de confiance (venant des modeles)
312 312
 
313 313
 // https://code.spip.net/@echappe_retour_modeles
314 314
 function echappe_retour_modeles($letexte, $interdire_scripts = false) {
315
-	$letexte = echappe_retour($letexte);
315
+    $letexte = echappe_retour($letexte);
316 316
 
317
-	// Dans les appels directs hors squelette, securiser aussi ici
318
-	if ($interdire_scripts) {
319
-		$letexte = interdire_scripts($letexte);
320
-	}
317
+    // Dans les appels directs hors squelette, securiser aussi ici
318
+    if ($interdire_scripts) {
319
+        $letexte = interdire_scripts($letexte);
320
+    }
321 321
 
322
-	return trim($letexte);
322
+    return trim($letexte);
323 323
 }
324 324
 
325 325
 
@@ -347,130 +347,130 @@  discard block
 block discarded – undo
347 347
  *     Texte coupé
348 348
  **/
349 349
 function couper($texte, $taille = 50, $suite = null) {
350
-	if (!($length = strlen($texte)) or $taille <= 0) {
351
-		return '';
352
-	}
353
-	$offset = 400 + 2 * $taille;
354
-	while ($offset < $length
355
-		and strlen(preg_replace(",<(!--|\w|/)[^>]+>,Uims", "", substr($texte, 0, $offset))) < $taille) {
356
-		$offset = 2 * $offset;
357
-	}
358
-	if ($offset < $length
359
-		&& ($p_tag_ouvrant = strpos($texte, '<', $offset)) !== null
360
-	) {
361
-		$p_tag_fermant = strpos($texte, '>', $offset);
362
-		if ($p_tag_fermant && ($p_tag_fermant < $p_tag_ouvrant)) {
363
-			$offset = $p_tag_fermant + 1;
364
-		} // prolonger la coupe jusqu'au tag fermant suivant eventuel
365
-	}
366
-	$texte = substr($texte, 0, $offset); /* eviter de travailler sur 10ko pour extraire 150 caracteres */
367
-
368
-	if (!function_exists('nettoyer_raccourcis_typo')) {
369
-		include_spip('inc/lien');
370
-	}
371
-	$texte = nettoyer_raccourcis_typo($texte);
372
-
373
-	// balises de sauts de ligne et paragraphe
374
-	$texte = preg_replace("/<p( [^>]*)?" . ">/", "\r", $texte);
375
-	$texte = preg_replace("/<br( [^>]*)?" . ">/", "\n", $texte);
376
-
377
-	// on repasse les doubles \n en \r que nettoyer_raccourcis_typo() a pu modifier
378
-	$texte = str_replace("\n\n", "\r", $texte);
379
-
380
-	// supprimer les tags
381
-	$texte = supprimer_tags($texte);
382
-	$texte = trim(str_replace("\n", " ", $texte));
383
-	$texte .= "\n";  // marquer la fin
384
-
385
-	// corriger la longueur de coupe
386
-	// en fonction de la presence de caracteres utf
387
-	if ($GLOBALS['meta']['charset'] == 'utf-8') {
388
-		$long = charset2unicode($texte);
389
-		$long = spip_substr($long, 0, max($taille, 1));
390
-		$nbcharutf = preg_match_all('/(&#[0-9]{3,6};)/S', $long, $matches);
391
-		$taille += $nbcharutf;
392
-	}
393
-
394
-
395
-	// couper au mot precedent
396
-	$long = spip_substr($texte, 0, max($taille - 4, 1));
397
-	$u = $GLOBALS['meta']['pcre_u'];
398
-	$court = preg_replace("/([^\s][\s]+)[^\s]*\n?$/" . $u, "\\1", $long);
399
-	if (is_null($suite)) {
400
-		$suite = (defined('_COUPER_SUITE') ? _COUPER_SUITE : '&nbsp;(...)');
401
-	}
402
-	$points = $suite;
403
-
404
-	// trop court ? ne pas faire de (...)
405
-	if (spip_strlen($court) < max(0.75 * $taille, 2)) {
406
-		$points = '';
407
-		$long = spip_substr($texte, 0, $taille);
408
-		$texte = preg_replace("/([^\s][\s]+)[^\s]*\n?$/" . $u, "\\1", $long);
409
-		// encore trop court ? couper au caractere
410
-		if (spip_strlen($texte) < 0.75 * $taille) {
411
-			$texte = $long;
412
-		}
413
-	} else {
414
-		$texte = $court;
415
-	}
416
-
417
-	if (strpos($texte, "\n"))  // la fin est encore la : c'est qu'on n'a pas de texte de suite
418
-	{
419
-		$points = '';
420
-	}
421
-
422
-	// remettre les paragraphes
423
-	$texte = preg_replace("/\r+/", "\n\n", $texte);
424
-
425
-	// supprimer l'eventuelle entite finale mal coupee
426
-	$texte = preg_replace('/&#?[a-z0-9]*$/S', '', $texte);
427
-
428
-	return quote_amp(trim($texte)) . $points;
350
+    if (!($length = strlen($texte)) or $taille <= 0) {
351
+        return '';
352
+    }
353
+    $offset = 400 + 2 * $taille;
354
+    while ($offset < $length
355
+        and strlen(preg_replace(",<(!--|\w|/)[^>]+>,Uims", "", substr($texte, 0, $offset))) < $taille) {
356
+        $offset = 2 * $offset;
357
+    }
358
+    if ($offset < $length
359
+        && ($p_tag_ouvrant = strpos($texte, '<', $offset)) !== null
360
+    ) {
361
+        $p_tag_fermant = strpos($texte, '>', $offset);
362
+        if ($p_tag_fermant && ($p_tag_fermant < $p_tag_ouvrant)) {
363
+            $offset = $p_tag_fermant + 1;
364
+        } // prolonger la coupe jusqu'au tag fermant suivant eventuel
365
+    }
366
+    $texte = substr($texte, 0, $offset); /* eviter de travailler sur 10ko pour extraire 150 caracteres */
367
+
368
+    if (!function_exists('nettoyer_raccourcis_typo')) {
369
+        include_spip('inc/lien');
370
+    }
371
+    $texte = nettoyer_raccourcis_typo($texte);
372
+
373
+    // balises de sauts de ligne et paragraphe
374
+    $texte = preg_replace("/<p( [^>]*)?" . ">/", "\r", $texte);
375
+    $texte = preg_replace("/<br( [^>]*)?" . ">/", "\n", $texte);
376
+
377
+    // on repasse les doubles \n en \r que nettoyer_raccourcis_typo() a pu modifier
378
+    $texte = str_replace("\n\n", "\r", $texte);
379
+
380
+    // supprimer les tags
381
+    $texte = supprimer_tags($texte);
382
+    $texte = trim(str_replace("\n", " ", $texte));
383
+    $texte .= "\n";  // marquer la fin
384
+
385
+    // corriger la longueur de coupe
386
+    // en fonction de la presence de caracteres utf
387
+    if ($GLOBALS['meta']['charset'] == 'utf-8') {
388
+        $long = charset2unicode($texte);
389
+        $long = spip_substr($long, 0, max($taille, 1));
390
+        $nbcharutf = preg_match_all('/(&#[0-9]{3,6};)/S', $long, $matches);
391
+        $taille += $nbcharutf;
392
+    }
393
+
394
+
395
+    // couper au mot precedent
396
+    $long = spip_substr($texte, 0, max($taille - 4, 1));
397
+    $u = $GLOBALS['meta']['pcre_u'];
398
+    $court = preg_replace("/([^\s][\s]+)[^\s]*\n?$/" . $u, "\\1", $long);
399
+    if (is_null($suite)) {
400
+        $suite = (defined('_COUPER_SUITE') ? _COUPER_SUITE : '&nbsp;(...)');
401
+    }
402
+    $points = $suite;
403
+
404
+    // trop court ? ne pas faire de (...)
405
+    if (spip_strlen($court) < max(0.75 * $taille, 2)) {
406
+        $points = '';
407
+        $long = spip_substr($texte, 0, $taille);
408
+        $texte = preg_replace("/([^\s][\s]+)[^\s]*\n?$/" . $u, "\\1", $long);
409
+        // encore trop court ? couper au caractere
410
+        if (spip_strlen($texte) < 0.75 * $taille) {
411
+            $texte = $long;
412
+        }
413
+    } else {
414
+        $texte = $court;
415
+    }
416
+
417
+    if (strpos($texte, "\n"))  // la fin est encore la : c'est qu'on n'a pas de texte de suite
418
+    {
419
+        $points = '';
420
+    }
421
+
422
+    // remettre les paragraphes
423
+    $texte = preg_replace("/\r+/", "\n\n", $texte);
424
+
425
+    // supprimer l'eventuelle entite finale mal coupee
426
+    $texte = preg_replace('/&#?[a-z0-9]*$/S', '', $texte);
427
+
428
+    return quote_amp(trim($texte)) . $points;
429 429
 }
430 430
 
431 431
 
432 432
 // https://code.spip.net/@protege_js_modeles
433 433
 function protege_js_modeles($t) {
434
-	if (isset($GLOBALS['visiteur_session'])) {
435
-		if (preg_match_all(',<script.*?($|</script.),isS', $t, $r, PREG_SET_ORDER)) {
436
-			if (!defined('_PROTEGE_JS_MODELES')) {
437
-				include_spip('inc/acces');
438
-				define('_PROTEGE_JS_MODELES', creer_uniqid());
439
-			}
440
-			foreach ($r as $regs) {
441
-				$t = str_replace($regs[0], code_echappement($regs[0], 'javascript' . _PROTEGE_JS_MODELES), $t);
442
-			}
443
-		}
444
-		if (preg_match_all(',<\?php.*?($|\?' . '>),isS', $t, $r, PREG_SET_ORDER)) {
445
-			if (!defined('_PROTEGE_PHP_MODELES')) {
446
-				include_spip('inc/acces');
447
-				define('_PROTEGE_PHP_MODELES', creer_uniqid());
448
-			}
449
-			foreach ($r as $regs) {
450
-				$t = str_replace($regs[0], code_echappement($regs[0], 'php' . _PROTEGE_PHP_MODELES), $t);
451
-			}
452
-		}
453
-	}
454
-
455
-	return $t;
434
+    if (isset($GLOBALS['visiteur_session'])) {
435
+        if (preg_match_all(',<script.*?($|</script.),isS', $t, $r, PREG_SET_ORDER)) {
436
+            if (!defined('_PROTEGE_JS_MODELES')) {
437
+                include_spip('inc/acces');
438
+                define('_PROTEGE_JS_MODELES', creer_uniqid());
439
+            }
440
+            foreach ($r as $regs) {
441
+                $t = str_replace($regs[0], code_echappement($regs[0], 'javascript' . _PROTEGE_JS_MODELES), $t);
442
+            }
443
+        }
444
+        if (preg_match_all(',<\?php.*?($|\?' . '>),isS', $t, $r, PREG_SET_ORDER)) {
445
+            if (!defined('_PROTEGE_PHP_MODELES')) {
446
+                include_spip('inc/acces');
447
+                define('_PROTEGE_PHP_MODELES', creer_uniqid());
448
+            }
449
+            foreach ($r as $regs) {
450
+                $t = str_replace($regs[0], code_echappement($regs[0], 'php' . _PROTEGE_PHP_MODELES), $t);
451
+            }
452
+        }
453
+    }
454
+
455
+    return $t;
456 456
 }
457 457
 
458 458
 
459 459
 function echapper_faux_tags($letexte) {
460
-	if (strpos($letexte, '<') === false) {
461
-		return $letexte;
462
-	}
463
-	$textMatches = preg_split(',(</?[a-z!][^<>]*>),', $letexte, null, PREG_SPLIT_DELIM_CAPTURE);
464
-
465
-	$letexte = "";
466
-	while (count($textMatches)) {
467
-		// un texte a echapper
468
-		$letexte .= str_replace("<", '&lt;', array_shift($textMatches));
469
-		// un tag html qui a servit a faite le split
470
-		$letexte .= array_shift($textMatches);
471
-	}
472
-
473
-	return $letexte;
460
+    if (strpos($letexte, '<') === false) {
461
+        return $letexte;
462
+    }
463
+    $textMatches = preg_split(',(</?[a-z!][^<>]*>),', $letexte, null, PREG_SPLIT_DELIM_CAPTURE);
464
+
465
+    $letexte = "";
466
+    while (count($textMatches)) {
467
+        // un texte a echapper
468
+        $letexte .= str_replace("<", '&lt;', array_shift($textMatches));
469
+        // un tag html qui a servit a faite le split
470
+        $letexte .= array_shift($textMatches);
471
+    }
472
+
473
+    return $letexte;
474 474
 }
475 475
 
476 476
 /**
@@ -483,44 +483,44 @@  discard block
 block discarded – undo
483 483
  * @return string
484 484
  */
485 485
 function echapper_html_suspect($texte, $strict=true) {
486
-	static $echapper_html_suspect;
487
-	if (!$texte or !is_string($texte)) {
488
-		return $texte;
489
-	}
490
-
491
-	if (!isset($echapper_html_suspect)) {
492
-		$echapper_html_suspect = charger_fonction('echapper_html_suspect', 'inc', true);
493
-	}
494
-	// si fonction personalisee, on delegue
495
-	if ($echapper_html_suspect) {
496
-		return $echapper_html_suspect($texte, $strict);
497
-	}
498
-
499
-	if (strpos($texte, '<') === false
500
-	  or strpos($texte, '=') === false) {
501
-		return $texte;
502
-	}
503
-
504
-	// quand c'est du texte qui passe par propre on est plus coulant tant qu'il y a pas d'attribut du type onxxx=
505
-	// car sinon on declenche sur les modeles ou ressources
506
-	if (!$strict and
507
-	  (strpos($texte,'on') === false or !preg_match(",<\w+.*\bon\w+\s*=,UimsS", $texte))
508
-	  ){
509
-		return $texte;
510
-	}
511
-
512
-	// on teste sur strlen car safehtml supprime le contenu dangereux
513
-	// mais il peut aussi changer des ' en " sur les attributs html,
514
-	// donc un test d'egalite est trop strict
515
-	if (strlen(safehtml($texte)) !== strlen($texte)) {
516
-		$texte = str_replace("<", "&lt;", $texte);
517
-		if (!function_exists('attribut_html')) {
518
-			include_spip('inc/filtres');
519
-		}
520
-		$texte = "<mark class='danger-js' title='".attribut_html(_T('erreur_contenu_suspect'))."'>⚠️</mark> ".$texte;
521
-	}
522
-
523
-	return $texte;
486
+    static $echapper_html_suspect;
487
+    if (!$texte or !is_string($texte)) {
488
+        return $texte;
489
+    }
490
+
491
+    if (!isset($echapper_html_suspect)) {
492
+        $echapper_html_suspect = charger_fonction('echapper_html_suspect', 'inc', true);
493
+    }
494
+    // si fonction personalisee, on delegue
495
+    if ($echapper_html_suspect) {
496
+        return $echapper_html_suspect($texte, $strict);
497
+    }
498
+
499
+    if (strpos($texte, '<') === false
500
+      or strpos($texte, '=') === false) {
501
+        return $texte;
502
+    }
503
+
504
+    // quand c'est du texte qui passe par propre on est plus coulant tant qu'il y a pas d'attribut du type onxxx=
505
+    // car sinon on declenche sur les modeles ou ressources
506
+    if (!$strict and
507
+      (strpos($texte,'on') === false or !preg_match(",<\w+.*\bon\w+\s*=,UimsS", $texte))
508
+        ){
509
+        return $texte;
510
+    }
511
+
512
+    // on teste sur strlen car safehtml supprime le contenu dangereux
513
+    // mais il peut aussi changer des ' en " sur les attributs html,
514
+    // donc un test d'egalite est trop strict
515
+    if (strlen(safehtml($texte)) !== strlen($texte)) {
516
+        $texte = str_replace("<", "&lt;", $texte);
517
+        if (!function_exists('attribut_html')) {
518
+            include_spip('inc/filtres');
519
+        }
520
+        $texte = "<mark class='danger-js' title='".attribut_html(_T('erreur_contenu_suspect'))."'>⚠️</mark> ".$texte;
521
+    }
522
+
523
+    return $texte;
524 524
 }
525 525
 
526 526
 
@@ -541,30 +541,30 @@  discard block
 block discarded – undo
541 541
  *      Texte sécurisé
542 542
  **/
543 543
 function safehtml($t) {
544
-	static $safehtml;
545
-
546
-	if (!$t or !is_string($t)) {
547
-		return $t;
548
-	}
549
-	# attention safehtml nettoie deux ou trois caracteres de plus. A voir
550
-	if (strpos($t, '<') === false) {
551
-		return str_replace("\x00", '', $t);
552
-	}
553
-
554
-	if (!function_exists('interdire_scripts')) {
555
-		include_spip('inc/texte');
556
-	}
557
-	$t = interdire_scripts($t); // jolifier le php
558
-	$t = echappe_js($t);
559
-
560
-	if (!isset($safehtml)) {
561
-		$safehtml = charger_fonction('safehtml', 'inc', true);
562
-	}
563
-	if ($safehtml) {
564
-		$t = $safehtml($t);
565
-	}
566
-
567
-	return interdire_scripts($t); // interdire le php (2 precautions)
544
+    static $safehtml;
545
+
546
+    if (!$t or !is_string($t)) {
547
+        return $t;
548
+    }
549
+    # attention safehtml nettoie deux ou trois caracteres de plus. A voir
550
+    if (strpos($t, '<') === false) {
551
+        return str_replace("\x00", '', $t);
552
+    }
553
+
554
+    if (!function_exists('interdire_scripts')) {
555
+        include_spip('inc/texte');
556
+    }
557
+    $t = interdire_scripts($t); // jolifier le php
558
+    $t = echappe_js($t);
559
+
560
+    if (!isset($safehtml)) {
561
+        $safehtml = charger_fonction('safehtml', 'inc', true);
562
+    }
563
+    if ($safehtml) {
564
+        $t = $safehtml($t);
565
+    }
566
+
567
+    return interdire_scripts($t); // interdire le php (2 precautions)
568 568
 }
569 569
 
570 570
 
@@ -586,10 +586,10 @@  discard block
 block discarded – undo
586 586
  *     Texte sans les modèles d'image
587 587
  **/
588 588
 function supprime_img($letexte, $message = null) {
589
-	if ($message === null) {
590
-		$message = '(' . _T('img_indisponible') . ')';
591
-	}
589
+    if ($message === null) {
590
+        $message = '(' . _T('img_indisponible') . ')';
591
+    }
592 592
 
593
-	return preg_replace(',<(img|doc|emb)([0-9]+)(\|([^>]*))?' . '\s*/?' . '>,i',
594
-		$message, $letexte);
593
+    return preg_replace(',<(img|doc|emb)([0-9]+)(\|([^>]*))?' . '\s*/?' . '>,i',
594
+        $message, $letexte);
595 595
 }
Please login to merge, or discard this patch.
Spacing   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -44,7 +44,7 @@  discard block
 block discarded – undo
44 44
 	// celle du texte) et public (spip_lang est la langue du texte)
45 45
 	$dir = _DIR_RESTREINT ? lang_dir() : lang_dir($GLOBALS['spip_lang']);
46 46
 
47
-	$p = 'puce' . (test_espace_prive() ? '_prive' : '');
47
+	$p = 'puce'.(test_espace_prive() ? '_prive' : '');
48 48
 	if ($dir == 'rtl') {
49 49
 		$p .= '_rtl';
50 50
 	}
@@ -67,7 +67,7 @@  discard block
 block discarded – undo
67 67
 }
68 68
 
69 69
 if (!defined('_BALISES_BLOCS_REGEXP')) {
70
-	define('_BALISES_BLOCS_REGEXP', ',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS');
70
+	define('_BALISES_BLOCS_REGEXP', ',</?('._BALISES_BLOCS.')[>[:space:]],iS');
71 71
 }
72 72
 
73 73
 //
@@ -85,7 +85,7 @@  discard block
 block discarded – undo
85 85
 
86 86
 	// Tester si on echappe en span ou en div
87 87
 	if (is_null($mode) or !in_array($mode, array('div', 'span'))) {
88
-		$mode = preg_match(',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS', $rempl) ? 'div' : 'span';
88
+		$mode = preg_match(',</?('._BALISES_BLOCS.')[>[:space:]],iS', $rempl) ? 'div' : 'span';
89 89
 	}
90 90
 
91 91
 	// Decouper en morceaux, base64 a des probleme selon la taille de la pile
@@ -117,11 +117,11 @@  discard block
 block discarded – undo
117 117
 	// echapper les < dans <code>
118 118
 	// on utilise _PROTEGE_BLOCS pour simplifier le code et la maintenance, mais on est interesse que par <code>
119 119
 	if (strpos($pre, "<") !== false
120
-		and preg_match_all(_PROTEGE_BLOCS, $pre, $matches, PREG_SET_ORDER)){
120
+		and preg_match_all(_PROTEGE_BLOCS, $pre, $matches, PREG_SET_ORDER)) {
121 121
 
122
-		foreach ($matches as $m){
123
-			if ($m[1]==='code'){
124
-				$code = "<code" . $m[2] . ">" . spip_htmlspecialchars($m[3]) . "</code>";
122
+		foreach ($matches as $m) {
123
+			if ($m[1] === 'code') {
124
+				$code = "<code".$m[2].">".spip_htmlspecialchars($m[3])."</code>";
125 125
 				$pre = str_replace($m[0], $code, $pre);
126 126
 			}
127 127
 		}
@@ -132,7 +132,7 @@  discard block
 block discarded – undo
132 132
 // Echapper les <code>...</ code>
133 133
 // https://code.spip.net/@traiter_echap_code_dist
134 134
 function traiter_echap_code_dist($regs) {
135
-	list(, , $att, $corps) = $regs;
135
+	list(,, $att, $corps) = $regs;
136 136
 	$echap = spip_htmlspecialchars($corps); // il ne faut pas passer dans entites_html, ne pas transformer les &#xxx; du code !
137 137
 
138 138
 	// ne pas mettre le <div...> s'il n'y a qu'une ligne
@@ -143,9 +143,9 @@  discard block
 block discarded – undo
143 143
 		$echap = nl2br($echap);
144 144
 		$echap = "<div style='text-align: left;' "
145 145
 			. "class='spip_code' dir='ltr'><code$att>"
146
-			. $echap . "</code></div>";
146
+			. $echap."</code></div>";
147 147
 	} else {
148
-		$echap = "<code$att class='spip_code' dir='ltr'>" . $echap . "</code>";
148
+		$echap = "<code$att class='spip_code' dir='ltr'>".$echap."</code>";
149 149
 	}
150 150
 
151 151
 	$echap = str_replace("\t", "&nbsp; &nbsp; &nbsp; &nbsp; ", $echap);
@@ -234,8 +234,8 @@  discard block
 block discarded – undo
234 234
 				$echap = $regs[0];
235 235
 			} // sinon les traiter selon le cas
236 236
 			else {
237
-				if (function_exists($f = $callback_prefix . 'traiter_echap_' . strtolower($regs[1]))
238
-				  or function_exists($f = $f . '_dist')) {
237
+				if (function_exists($f = $callback_prefix.'traiter_echap_'.strtolower($regs[1]))
238
+				  or function_exists($f = $f.'_dist')) {
239 239
 					$echap = $f($regs);
240 240
 				}
241 241
 			}
@@ -254,7 +254,7 @@  discard block
 block discarded – undo
254 254
 	// (derogatoire car on ne peut pas faire passer < ? ... ? >
255 255
 	// dans une callback autonommee
256 256
 	if (strpos($preg ? $preg : _PROTEGE_BLOCS, 'script') !== false) {
257
-		if (strpos($letexte, "<" . "?") !== false and preg_match_all(',<[?].*($|[?]>),UisS',
257
+		if (strpos($letexte, "<"."?") !== false and preg_match_all(',<[?].*($|[?]>),UisS',
258 258
 				$letexte, $matches, PREG_SET_ORDER)
259 259
 		) {
260 260
 			foreach ($matches as $regs) {
@@ -279,7 +279,7 @@  discard block
 block discarded – undo
279 279
 		$max_prof = 5;
280 280
 		while (strpos($letexte, "<") !== false
281 281
 			and
282
-			preg_match_all(',<(span|div)\sclass=[\'"]base64' . $source . '[\'"]\s(.*)>\s*</\1>,UmsS',
282
+			preg_match_all(',<(span|div)\sclass=[\'"]base64'.$source.'[\'"]\s(.*)>\s*</\1>,UmsS',
283 283
 				$letexte, $regs, PREG_SET_ORDER)
284 284
 			and $max_prof--) {
285 285
 			foreach ($regs as $reg) {
@@ -292,7 +292,7 @@  discard block
 block discarded – undo
292 292
 					}
293 293
 				}
294 294
 				if ($at) {
295
-					$rempl = '<' . $reg[1] . '>' . $rempl . '</' . $reg[1] . '>';
295
+					$rempl = '<'.$reg[1].'>'.$rempl.'</'.$reg[1].'>';
296 296
 					foreach ($at as $attr => $a) {
297 297
 						$rempl = inserer_attribut($rempl, $attr, $a);
298 298
 					}
@@ -371,8 +371,8 @@  discard block
 block discarded – undo
371 371
 	$texte = nettoyer_raccourcis_typo($texte);
372 372
 
373 373
 	// balises de sauts de ligne et paragraphe
374
-	$texte = preg_replace("/<p( [^>]*)?" . ">/", "\r", $texte);
375
-	$texte = preg_replace("/<br( [^>]*)?" . ">/", "\n", $texte);
374
+	$texte = preg_replace("/<p( [^>]*)?".">/", "\r", $texte);
375
+	$texte = preg_replace("/<br( [^>]*)?".">/", "\n", $texte);
376 376
 
377 377
 	// on repasse les doubles \n en \r que nettoyer_raccourcis_typo() a pu modifier
378 378
 	$texte = str_replace("\n\n", "\r", $texte);
@@ -380,7 +380,7 @@  discard block
 block discarded – undo
380 380
 	// supprimer les tags
381 381
 	$texte = supprimer_tags($texte);
382 382
 	$texte = trim(str_replace("\n", " ", $texte));
383
-	$texte .= "\n";  // marquer la fin
383
+	$texte .= "\n"; // marquer la fin
384 384
 
385 385
 	// corriger la longueur de coupe
386 386
 	// en fonction de la presence de caracteres utf
@@ -395,7 +395,7 @@  discard block
 block discarded – undo
395 395
 	// couper au mot precedent
396 396
 	$long = spip_substr($texte, 0, max($taille - 4, 1));
397 397
 	$u = $GLOBALS['meta']['pcre_u'];
398
-	$court = preg_replace("/([^\s][\s]+)[^\s]*\n?$/" . $u, "\\1", $long);
398
+	$court = preg_replace("/([^\s][\s]+)[^\s]*\n?$/".$u, "\\1", $long);
399 399
 	if (is_null($suite)) {
400 400
 		$suite = (defined('_COUPER_SUITE') ? _COUPER_SUITE : '&nbsp;(...)');
401 401
 	}
@@ -405,7 +405,7 @@  discard block
 block discarded – undo
405 405
 	if (spip_strlen($court) < max(0.75 * $taille, 2)) {
406 406
 		$points = '';
407 407
 		$long = spip_substr($texte, 0, $taille);
408
-		$texte = preg_replace("/([^\s][\s]+)[^\s]*\n?$/" . $u, "\\1", $long);
408
+		$texte = preg_replace("/([^\s][\s]+)[^\s]*\n?$/".$u, "\\1", $long);
409 409
 		// encore trop court ? couper au caractere
410 410
 		if (spip_strlen($texte) < 0.75 * $taille) {
411 411
 			$texte = $long;
@@ -425,7 +425,7 @@  discard block
 block discarded – undo
425 425
 	// supprimer l'eventuelle entite finale mal coupee
426 426
 	$texte = preg_replace('/&#?[a-z0-9]*$/S', '', $texte);
427 427
 
428
-	return quote_amp(trim($texte)) . $points;
428
+	return quote_amp(trim($texte)).$points;
429 429
 }
430 430
 
431 431
 
@@ -438,16 +438,16 @@  discard block
 block discarded – undo
438 438
 				define('_PROTEGE_JS_MODELES', creer_uniqid());
439 439
 			}
440 440
 			foreach ($r as $regs) {
441
-				$t = str_replace($regs[0], code_echappement($regs[0], 'javascript' . _PROTEGE_JS_MODELES), $t);
441
+				$t = str_replace($regs[0], code_echappement($regs[0], 'javascript'._PROTEGE_JS_MODELES), $t);
442 442
 			}
443 443
 		}
444
-		if (preg_match_all(',<\?php.*?($|\?' . '>),isS', $t, $r, PREG_SET_ORDER)) {
444
+		if (preg_match_all(',<\?php.*?($|\?'.'>),isS', $t, $r, PREG_SET_ORDER)) {
445 445
 			if (!defined('_PROTEGE_PHP_MODELES')) {
446 446
 				include_spip('inc/acces');
447 447
 				define('_PROTEGE_PHP_MODELES', creer_uniqid());
448 448
 			}
449 449
 			foreach ($r as $regs) {
450
-				$t = str_replace($regs[0], code_echappement($regs[0], 'php' . _PROTEGE_PHP_MODELES), $t);
450
+				$t = str_replace($regs[0], code_echappement($regs[0], 'php'._PROTEGE_PHP_MODELES), $t);
451 451
 			}
452 452
 		}
453 453
 	}
@@ -482,7 +482,7 @@  discard block
 block discarded – undo
482 482
  * @param bool $strict
483 483
  * @return string
484 484
  */
485
-function echapper_html_suspect($texte, $strict=true) {
485
+function echapper_html_suspect($texte, $strict = true) {
486 486
 	static $echapper_html_suspect;
487 487
 	if (!$texte or !is_string($texte)) {
488 488
 		return $texte;
@@ -504,8 +504,8 @@  discard block
 block discarded – undo
504 504
 	// quand c'est du texte qui passe par propre on est plus coulant tant qu'il y a pas d'attribut du type onxxx=
505 505
 	// car sinon on declenche sur les modeles ou ressources
506 506
 	if (!$strict and
507
-	  (strpos($texte,'on') === false or !preg_match(",<\w+.*\bon\w+\s*=,UimsS", $texte))
508
-	  ){
507
+	  (strpos($texte, 'on') === false or !preg_match(",<\w+.*\bon\w+\s*=,UimsS", $texte))
508
+	  ) {
509 509
 		return $texte;
510 510
 	}
511 511
 
@@ -587,9 +587,9 @@  discard block
 block discarded – undo
587 587
  **/
588 588
 function supprime_img($letexte, $message = null) {
589 589
 	if ($message === null) {
590
-		$message = '(' . _T('img_indisponible') . ')';
590
+		$message = '('._T('img_indisponible').')';
591 591
 	}
592 592
 
593
-	return preg_replace(',<(img|doc|emb)([0-9]+)(\|([^>]*))?' . '\s*/?' . '>,i',
593
+	return preg_replace(',<(img|doc|emb)([0-9]+)(\|([^>]*))?'.'\s*/?'.'>,i',
594 594
 		$message, $letexte);
595 595
 }
Please login to merge, or discard this patch.