OSDN Git Service

PHP 5.5のpreg_replace()「/e」廃止対応。
authornaoki hirata <naoki@magic3.org>
Sat, 27 Jul 2013 23:56:11 +0000 (08:56 +0900)
committernaoki hirata <naoki@magic3.org>
Sat, 27 Jul 2013 23:56:11 +0000 (08:56 +0900)
widgets/wiki_main/include/lib/html.php
widgets/wiki_main/include/lib/init.php
widgets/wiki_main/include/plugin/referer.inc.php

index 0825dc1..cfacf5b 100644 (file)
@@ -308,9 +308,9 @@ function make_heading(& $str, $strip = TRUE)
        }
 
        // Cut footnotes and tags
-       if ($strip === TRUE)
-               $str = strip_htmltag(make_link(preg_replace($NotePattern, '', $str)));
-
+//     if ($strip === TRUE) $str = strip_htmltag(make_link(preg_replace($NotePattern, '', $str)));
+       if ($strip === TRUE) $str = strip_htmltag(make_link(preg_replace_callback($NotePattern, create_function('$matches','return;'), $str)));         // PHP5.5用修正
+       
        return $id;
 }
 
index a22dd1d..5c63528 100644 (file)
@@ -430,7 +430,8 @@ $BracketName = '(?!\s):?[^\r\n\t\f\[\]<>#&":]+:?(?<!\s)';
 $InterWikiName = '(\[\[)?((?:(?!\s|:|\]\]).)+):(.+)(?(1)\]\])';
 
 // 注釈
-$NotePattern = '/\(\(((?:(?>(?:(?!\(\()(?!\)\)(?:[^\)]|$)).)+)|(?R))*)\)\)/ex';
+/*$NotePattern = '/\(\(((?:(?>(?:(?!\(\()(?!\)\)(?:[^\)]|$)).)+)|(?R))*)\)\)/ex';*/
+$NotePattern = '/\(\(((?:(?>(?:(?!\(\()(?!\)\)(?:[^\)]|$)).)+)|(?R))*)\)\)/';          // PHP5.5以降用修正
 
 /////////////////////////////////////////////////
 // 初期設定(ユーザ定義ルール読み込み)
index 05a31ec..fbdea85 100644 (file)
@@ -118,7 +118,8 @@ function plugin_referer_body($page, $sort)
                list($ltime, $stime, $count, $url, $enable) = $arr;
 
                // 非ASCIIキャラクタ(だけ)をURLエンコードしておく BugTrack/440
-               $e_url = htmlspecialchars(preg_replace('/([" \x80-\xff]+)/e', 'rawurlencode("$1")', $url));
+               //$e_url = htmlspecialchars(preg_replace('/([" \x80-\xff]+)/e', 'rawurlencode("$1")', $url));
+               $e_url = htmlspecialchars(preg_replace_callback('/([" \x80-\xff]+)/', create_function('$matches','return rawurlencode($matches[1]);'), $url));          // PHP5.5用対応
                $s_url = htmlspecialchars(mb_convert_encoding(rawurldecode($url), SOURCE_ENCODING, 'auto'));
 
                $lpass = get_passage($ltime, FALSE); // 最終更新日時からの経過時間