BugTrack/2512
の編集
Top
/
BugTrack
/
2512
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
* PHP7.3でAutoAliasNameに日本語が含まれていると本文が表示されないことがある [#z180d91e] - ページ: [[BugTrack]] - 投稿者: [[umorigu]] - 優先順位: 低 - 状態: 完了 - カテゴリー: 本体バグ - 投稿日: 2020-08-18 (火) 02:53:23 - バージョン: 1.5.3 - リリース予定バージョン: 1.5.4 ** メッセージ [#ecdebd29] [[pukiwiki:質問箱/5383]]より: > スターサーバー(PHP7.2.29)にPukiWikiをアップロードして使っています。 > > ロリポップに移行して使おうと思ったのですが、 AutoAliasを使う設定にしていると エイリアス名が書いてある行が表示されなくなることがあります。 書いてあっても問題なく表示されるエイリアス名と行もあれば、 エイリアス名が書いていなくても表示されない行などもありました。 > 自分で見つけた条件は エイリアス名の中に「旅」という字が含まれているとその行が表示されなくなることがあります。 例としてAutoAliasNameに - [[旅>リンク]] > と書いて、「旅にでたい」と書き込んだりするとその「旅にでたい」は消えてしまいます。 - [[旅>リンク]] > を消去して、 - [[旅行>リンク]] > と書いて、「旅行代」と書き込んでみたらそれは問題なく表示されました。 ---- PHP7.3で、正規表現ライブラリPCREのエンジンが更新されたことによる不具合です。 $ $php72 --version PHP 7.2.0 (cli) (built: Nov 29 2017 00:17:00) ( ZTS MSVC15 (Visual C++ 2017) x86 ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies $ $php73 --version PHP 7.3.0 (cli) (built: Dec 6 2018 02:17:00) ( ZTS MSVC15 (Visual C++ 2017) x86 ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies - UTF-8文字列に対して preg_replace で /x フラグを指定し、 /u フラグを指定しないと、PHP7.3 で出力結果が正しくない - PHP7.2 では問題ない (期待通りの置換結果となる) - PHP7.4 では PHP7.3 と同じ問題が発生する - /x フラグを指定しなければ問題ない - /u フラグを指定する (/xu) と問題ない - EUC_JP設定では問題ない b2512.php: <?php echo "旅行\n"; echo bin2hex('旅行') . "\n"; $s = preg_replace('/旅/x', '_', '旅行'); echo "$s\n"; echo bin2hex($s) . "\n"; 実行(UTF-8): $ $php72 b2512.php 旅行 e69785e8a18c _行 5fe8a18c $ $php73 b2512.php 旅行 e69785e8a18c _▒行 5f85e8a18c 「旅」e6 97 85 のうち 3バイト目 85 が置換されずに残っている。 実行(EUC-JP): $ $php72 b2512eucjp.php 旅行 ceb9b9d4 _行 5fb9d4 $ $php73 b2512eucjp.php 旅行 ceb9b9d4 _行 5fb9d4 EUC-JPの場合 PHP7.2とPHP7.3 で差分無し -------- - 修正しました。 PHP7.0 以降でUTF8設定の場合は preg_replace に '/u' (PCRE_UTF8) オプションを指定します [[commit:d03da57827]] -- [[umorigu]] &new{2020-08-21 (金) 02:20:55}; - [[BugTrack/2518]] 同原因でAutoLinkされない問題 -- [[umorigu]] &new{2021-05-01 (土) 01:52:12}; #comment
タイムスタンプを変更しない
* PHP7.3でAutoAliasNameに日本語が含まれていると本文が表示されないことがある [#z180d91e] - ページ: [[BugTrack]] - 投稿者: [[umorigu]] - 優先順位: 低 - 状態: 完了 - カテゴリー: 本体バグ - 投稿日: 2020-08-18 (火) 02:53:23 - バージョン: 1.5.3 - リリース予定バージョン: 1.5.4 ** メッセージ [#ecdebd29] [[pukiwiki:質問箱/5383]]より: > スターサーバー(PHP7.2.29)にPukiWikiをアップロードして使っています。 > > ロリポップに移行して使おうと思ったのですが、 AutoAliasを使う設定にしていると エイリアス名が書いてある行が表示されなくなることがあります。 書いてあっても問題なく表示されるエイリアス名と行もあれば、 エイリアス名が書いていなくても表示されない行などもありました。 > 自分で見つけた条件は エイリアス名の中に「旅」という字が含まれているとその行が表示されなくなることがあります。 例としてAutoAliasNameに - [[旅>リンク]] > と書いて、「旅にでたい」と書き込んだりするとその「旅にでたい」は消えてしまいます。 - [[旅>リンク]] > を消去して、 - [[旅行>リンク]] > と書いて、「旅行代」と書き込んでみたらそれは問題なく表示されました。 ---- PHP7.3で、正規表現ライブラリPCREのエンジンが更新されたことによる不具合です。 $ $php72 --version PHP 7.2.0 (cli) (built: Nov 29 2017 00:17:00) ( ZTS MSVC15 (Visual C++ 2017) x86 ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies $ $php73 --version PHP 7.3.0 (cli) (built: Dec 6 2018 02:17:00) ( ZTS MSVC15 (Visual C++ 2017) x86 ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies - UTF-8文字列に対して preg_replace で /x フラグを指定し、 /u フラグを指定しないと、PHP7.3 で出力結果が正しくない - PHP7.2 では問題ない (期待通りの置換結果となる) - PHP7.4 では PHP7.3 と同じ問題が発生する - /x フラグを指定しなければ問題ない - /u フラグを指定する (/xu) と問題ない - EUC_JP設定では問題ない b2512.php: <?php echo "旅行\n"; echo bin2hex('旅行') . "\n"; $s = preg_replace('/旅/x', '_', '旅行'); echo "$s\n"; echo bin2hex($s) . "\n"; 実行(UTF-8): $ $php72 b2512.php 旅行 e69785e8a18c _行 5fe8a18c $ $php73 b2512.php 旅行 e69785e8a18c _▒行 5f85e8a18c 「旅」e6 97 85 のうち 3バイト目 85 が置換されずに残っている。 実行(EUC-JP): $ $php72 b2512eucjp.php 旅行 ceb9b9d4 _行 5fb9d4 $ $php73 b2512eucjp.php 旅行 ceb9b9d4 _行 5fb9d4 EUC-JPの場合 PHP7.2とPHP7.3 で差分無し -------- - 修正しました。 PHP7.0 以降でUTF8設定の場合は preg_replace に '/u' (PCRE_UTF8) オプションを指定します [[commit:d03da57827]] -- [[umorigu]] &new{2020-08-21 (金) 02:20:55}; - [[BugTrack/2518]] 同原因でAutoLinkされない問題 -- [[umorigu]] &new{2021-05-01 (土) 01:52:12}; #comment
テキスト整形のルールを表示する