うちの環境はこんな感じです。
- Arch: amd64
- OS(userland): NetBSD 6.1
- kernel: NetBSD 6.1
- nginx: 1.4.1
- PHP: 5.5.0
- MariaDB: 5.5.31
http://pukiwiki.sourceforge.jp/dev/?BugTrack2%2F349
を参考にします。
まずはpukiwikiのhtmlspecialchars関数をすべてhtmlscに変換します。
$ cd /home/www/pukiwikidir
$ grep -lr --include="*.php" htmlspecialchars ./ | gsed -e "s/htmlspecialchars/htmlsc/g" -i
次に、lib/func.phpを変更します。
hex2binが定義されている場合は無効にします。
@@ -264,6 +269,7 @@ function decode($key)
}
// Inversion of bin2hex()
+if (! function_exists('hex2bin')) {
function hex2bin($hex_string)
{
// preg_match : Avoid warning : pack(): Type H: illegal hex digit ...
@@ -271,6 +277,7 @@ function hex2bin($hex_string)
return preg_match('/^[0-9a-f]+$/i', $hex_string) ?
pack('H*', (string)$hex_string) : $hex_string;
}
+}
// Remove [[ ]] (brackets)
function strip_bracket($str)
htmlsc関数を追加します。
function htmlsc($string = '', $flags = ENT_QUOTES, $charset = CONTENT_CHARSET)
{
return htmlspecialchars($string, $flags, $charset); // htmlsc()
}
以上で完了です。