WindowsServer2003 & PHP 5.0.5 の環境で以下のエラーが出ます。5.0.4に戻すと正常動作します。
Fatal error: Only variables can be passed by reference in ~/rules.ini.php on line 26
diff -ur pukiwiki-1.4.6_rc/lib/file.php pukiwiki-1.4.6_rc_mod/lib/file.php --- pukiwiki-1.4.6_rc/lib/file.php Wed Sep 28 18:42:04 2005 +++ pukiwiki-1.4.6_rc_mod/lib/file.php Wed Sep 28 18:42:15 2005 @@ -264,7 +264,8 @@ set_file_buffer($fp, 0); flock($fp, LOCK_EX); rewind($fp); - foreach (array_splice(array_keys($recent_pages), 0, $maxshow) as $page) { + $tmp=array_keys($recent_pages); + foreach (array_splice($tmp, 0, $maxshow) as $page) { $time = $recent_pages[$page]; $s_lastmod = htmlspecialchars(format_date($time)); $s_page = htmlspecialchars($page); diff -ur pukiwiki-1.4.6_rc/lib/html.php pukiwiki-1.4.6_rc_mod/lib/html.php --- pukiwiki-1.4.6_rc/lib/html.php Wed Sep 28 18:42:04 2005 +++ pukiwiki-1.4.6_rc_mod/lib/html.php Wed Sep 28 18:42:15 2005 @@ -119,9 +119,9 @@ if ($search_word_color && isset($vars['word'])) { $body = '<div class="small">' . $_msg_word . htmlspecialchars($vars['word']) . '</div>' . $hr . "\n" . $body; - $words = array_flip(array_splice( - preg_split('/\s+/', $vars['word'], -1, PREG_SPLIT_NO_EMPTY), - 0, 10)); + $tmp = preg_split('/\s+/', $vars['word'], -1, PREG_SPLIT_NO_EMPTY); + $tmp = array_splice($tmp, 0, 10); + $words = array_flip($tmp); $keys = array(); foreach ($words as $word=>$id) $keys[$word] = strlen($word); arsort($keys, SORT_NUMERIC); Only in pukiwiki-1.4.6_rc_mod: phpinfo.php diff -ur pukiwiki-1.4.6_rc/plugin/recent.inc.php pukiwiki-1.4.6_rc_mod/plugin/recent.inc.php --- pukiwiki-1.4.6_rc/plugin/recent.inc.php Wed Sep 28 18:42:05 2005 +++ pukiwiki-1.4.6_rc_mod/plugin/recent.inc.php Wed Sep 28 18:42:16 2005 @@ -39,7 +39,8 @@ // Get latest N changes if (file_exists(PLUGIN_RECENT_CACHE)) { - $lines = array_splice(file(PLUGIN_RECENT_CACHE), 0, $recent_lines); + $tmp=file(PLUGIN_RECENT_CACHE); + $lines = array_splice($tmp, 0, $recent_lines); } else { return '#recent(): Cache file of RecentChanges not found' . '<br />'; } diff -ur pukiwiki-1.4.6_rc/plugin/rss.inc.php pukiwiki-1.4.6_rc_mod/plugin/rss.inc.php --- pukiwiki-1.4.6_rc/plugin/rss.inc.php Wed Sep 28 18:42:05 2005 +++ pukiwiki-1.4.6_rc_mod/plugin/rss.inc.php Wed Sep 28 18:42:16 2005 @@ -35,7 +35,8 @@ // Creating <item> $items = $rdf_li = ''; - foreach (array_splice(file($recent), 0, $rss_max) as $line) { + $tmp=file($recent); + foreach (array_splice($tmp, 0, $rss_max) as $line) { list($time, $page) = explode("\t", rtrim($line)); $r_page = rawurlencode($page); $title = mb_convert_encoding($page, 'UTF-8', SOURCE_ENCODING); diff -ur pukiwiki-1.4.6_rc/rules.ini.php pukiwiki-1.4.6_rc_mod/rules.ini.php --- pukiwiki-1.4.6_rc/rules.ini.php Wed Sep 28 18:42:06 2005 +++ pukiwiki-1.4.6_rc_mod/rules.ini.php Wed Sep 28 18:42:18 2005 @@ -25,6 +25,7 @@ // 前後に必ず / を含めてください。行頭指定は ^ を頭に。 // 行末指定は $ を後ろに。 // +$page_tmp=explode('/',$vars['page']); $str_rules = array( 'now\?' => format_date(UTIME), 'date\?' => get_date($date_format), @@ -32,7 +33,7 @@ '&now;' => format_date(UTIME), '&date;' => get_date($date_format), '&time;' => get_date($time_format), - '&page;' => array_pop(explode('/', $vars['page'])), + '&page;' => array_pop($page_tmp), '&fpage;' => $vars['page'], '&t;' => "\t", );
diff -u -r1.16 counter.inc.php --- plugin/counter.inc.php 9 Apr 2005 03:08:09 -0000 1.16 +++ plugin/counter.inc.php 3 Oct 2005 02:08:44 -0000 @@ -17,1 +17,2 @@ - $arg = strtolower(array_shift(func_get_args())); + $args = func_get_args(); + $arg = strtolower(array_shift($args)); diff -u -r1.42 pcomment.inc.php --- plugin/pcomment.inc.php 29 May 2005 10:49:59 -0000 1.42 +++ plugin/pcomment.inc.php 3 Oct 2005 02:08:44 -0000 @@ -80,2 +80,2 @@ - array_walk(func_get_args(), 'plugin_pcomment_check_arg', & $params); + $args = func_get_args(); + array_walk($args, 'plugin_pcomment_check_arg', & $params); diff -u -r1.14 popular.inc.php --- plugin/popular.inc.php 9 Apr 2005 03:18:06 -0000 1.14 +++ plugin/popular.inc.php 3 Oct 2005 02:08:44 -0000 @@ -68,1 +68,2 @@ - $counters = array_splice(array_reverse($counters, TRUE), 0, $max); + $counters = array_reverse($counters, TRUE); + $counters = array_splice($counters, 0, $max); diff -u -r1.29 tracker.inc.php --- plugin/tracker.inc.php 2 Mar 2005 13:31:05 -0000 1.29 +++ plugin/tracker.inc.php 3 Oct 2005 02:08:44 -0000 @@ -841,1 +841,2 @@ - $b_end = ($sort == array_shift(array_keys($order))); + $order_keys = array_keys($order); + $b_end = ($sort == array_shift($order_keys));
$ ls plugin/*.inc.php | sed -e 's#.*/##' -e 's/\.inc\...*//' | while read i; do echo "#$i"; echo "&$i;"; done #add &add; #amazon &amazon; #aname &aname; (略)