[SPIP] +spip v3.0.17
[lhc/web/clavette_www.git] / www / plugins-dist / textwheel / wheels / spip / spip-paragrapher.php
1 <?php
2
3 if (!defined('_ECRIRE_INC_VERSION')) return;
4
5 /**
6 * callback fermer-para-mano
7 * on refait le preg, a la main
8 */
9 function fermer_para_mano(&$t) {
10 # match: ",<p (.*)<(/?)(STOP P|div|pre|ul|ol|li|blockquote|h[1-6r]|t(able|[rdh]|head|body|foot|extarea)|form|object|center|marquee|address|applet|iframe|d[ltd]|script|noscript|map|button|fieldset|style)\b,UimsS"
11 # replace: "\n<p "+trim($1)+"</p>\n<$2$3"
12
13 foreach (explode('<p ', $t) as $c => $p) {
14 if ($c == 0)
15 $t = $p;
16 else {
17 $pi = strtolower($p);
18 if (preg_match(
19 ",</?(?:stop p|div|pre|ul|ol|li|blockquote|h[1-6r]|t(able|[rdh]|head|body|foot|extarea)|form|object|center|marquee|address|applet|iframe|d[ltd]|script|noscript|map|button|fieldset|style)\b,S",
20 $pi, $r)) {
21 $pos = strpos($pi, $r[0]);
22 $t .= "<p ".str_replace("\n", _AUTOBR."\n", rtrim(substr($p,0,$pos)))."</p>\n".substr($p,$pos);
23 } else {
24 $t .= '<p '.$p;
25 }
26 }
27 }
28
29 if (_AUTOBR) {
30 $t = str_replace(_AUTOBR."\n"."<br", "<br", $t); #manque /i
31 $reg = ',(<br\b[^>]*>\s*)'.preg_quote(_AUTOBR."\n", ',').",iS";
32
33 $t = preg_replace($reg, '\1', $t);
34 }
35
36 return $t;
37 }