BugTrack/2512
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* PHP7.3でAutoAliasNameに日本語が含まれていると本文が表示...
- ページ: [[BugTrack]]
- 投稿者: [[umorigu]]
- 優先順位: 低
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2020-08-18 (火) 02:53:23
- バージョン: 1.5.3
- リリース予定バージョン: 1.5.4
** メッセージ [#ecdebd29]
[[pukiwiki:質問箱/5383]]より:
> スターサーバー(PHP7.2.29)にPukiWikiをアップロードして...
>
> ロリポップに移行して使おうと思ったのですが、 AutoAlias...
> 自分で見つけた条件は エイリアス名の中に「旅」という字が...
- [[旅>リンク]]
> と書いて、「旅にでたい」と書き込んだりするとその「旅に...
- [[旅>リンク]]
> を消去して、
- [[旅行>リンク]]
> と書いて、「旅行代」と書き込んでみたらそれは問題なく表...
----
PHP7.3で、正規表現ライブラリPCREのエンジンが更新されたこ...
$ $php72 --version
PHP 7.2.0 (cli) (built: Nov 29 2017 00:17:00) ( ZTS MSVC...
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technol...
$ $php73 --version
PHP 7.3.0 (cli) (built: Dec 6 2018 02:17:00) ( ZTS MSVC...
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Tec...
- UTF-8文字列に対して preg_replace で /x フラグを指定し、...
- 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_repla...
- [[BugTrack/2518]] 同原因でAutoLinkされない問題 -- [[umo...
#comment
終了行:
* PHP7.3でAutoAliasNameに日本語が含まれていると本文が表示...
- ページ: [[BugTrack]]
- 投稿者: [[umorigu]]
- 優先順位: 低
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2020-08-18 (火) 02:53:23
- バージョン: 1.5.3
- リリース予定バージョン: 1.5.4
** メッセージ [#ecdebd29]
[[pukiwiki:質問箱/5383]]より:
> スターサーバー(PHP7.2.29)にPukiWikiをアップロードして...
>
> ロリポップに移行して使おうと思ったのですが、 AutoAlias...
> 自分で見つけた条件は エイリアス名の中に「旅」という字が...
- [[旅>リンク]]
> と書いて、「旅にでたい」と書き込んだりするとその「旅に...
- [[旅>リンク]]
> を消去して、
- [[旅行>リンク]]
> と書いて、「旅行代」と書き込んでみたらそれは問題なく表...
----
PHP7.3で、正規表現ライブラリPCREのエンジンが更新されたこ...
$ $php72 --version
PHP 7.2.0 (cli) (built: Nov 29 2017 00:17:00) ( ZTS MSVC...
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technol...
$ $php73 --version
PHP 7.3.0 (cli) (built: Dec 6 2018 02:17:00) ( ZTS MSVC...
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Tec...
- UTF-8文字列に対して preg_replace で /x フラグを指定し、...
- 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_repla...
- [[BugTrack/2518]] 同原因でAutoLinkされない問題 -- [[umo...
#comment
ページ名: