カテゴリ | エラー・トラブル |
---|---|
サマリ | PHP7.3以降でAutoAlias機能を使うと表示がおかしくなる |
バージョン | 1.5.3 |
投稿者 | 名無しさん |
状態 | 完了 |
投稿日 | 2020-08-15 (土) 10:48:25 |
スターサーバー(PHP7.2.29)にPukiWikiをアップロードして使っています。
ロリポップに移行して使おうと思ったのですが、 AutoAliasを使う設定にしていると エイリアス名が書いてある行が表示されなくなることがあります。 書いてあっても問題なく表示されるエイリアス名と行もあれば、 エイリアス名が書いていなくても表示されない行などもありました。
ロリポップでPHP7.3(CGI、モジュール)、PHP7.4(CGI)に変えて試してどれも同じ状態になったので スターサーバーでPHP7.3.16、PHP7.4.4に変えて試したらロリポップと同じ状態になりました。
PHP7.3以降でもAutoAlias機能を使いたいので、対処法がありましたら教えていただきたいです。 よろしくお願いいたします。
回答ありがとうございます。 追記です。 pukiwiki.ini.phpの$adminpassの記入と$autoalias = 1;にしただけの初期状態1.5.3verでも発生いたします。 消えてしまった表示は、$autoalias = 0;にすると問題なく表示されます。
自分で見つけた条件は エイリアス名の中に「旅」という字が含まれているとその行が表示されなくなることがあります。 例としてAutoAliasNameに
- [[旅>リンク]]
と書いて、「旅にでたい」と書き込んだりするとその「旅にでたい」は消えてしまいます。
- [[旅>リンク]]
を消去して、
- [[旅行>リンク]]
と書いて、「旅行代」と書き込んでみたらそれは問題なく表示されました。
- [[四季の旅>リンク]]
と書いて、「四季の旅に行く」は消えてしまいました。 リンクのページが存在・非存在は関係なく表示されなくなります。
- [[旅>リンク]]
と書いた時ですが、「族」はエイリアス名に入れてすらいないのに「族」の入っている行も消えてしまいます。「家族」とか…… 同じ部首くらいしか共通点は見当たりませんが、自分でわかった条件はこれくらいです。
(lib/make_link.php:120) $this->result = array(); - $string = preg_replace_callback('/' . $this->pattern . '/x', + $string = preg_replace_callback('/' . $this->pattern . '/xu', array(& $this, 'replace'), $string);