BugTrack/2031
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*decodeの挙動が怪しい? [#fd1fce1b]
-ページ: [[BugTrack2]]
-投稿者: [[ARAI]]
-優先順位: 重要
-状態: 完了
-カテゴリー: 本体バグ
-投稿日: 2005-03-06 (日) 16:03:44
-バージョン: 1.4.5rc1 ~ 1.4.5_1
** 修正 [#xb15887b]
- [[cvs:lib/func.php]] (1.34, 1.36-1.38)
**メッセージ [#y930c70d]
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/pukiwiki/pu...
以降、decodeが期待の動作をしない場合がある?ようです。
簡単な再現例として、[[1.4.5_1におけるPHP>http://pukiwiki....
挙げておきます。
「以下のファイルをリネームします。」の所で、
-[[PHP]]→新ページ名
のように表示されるべきところが、
-→新ページ名
となります。
取り敢えず、decodeをlib/func.php 1.26版に戻すか、
return preg_match('/^[0-9a-f]+$/i', $key) ? pack('H*', "...
とすることで回避出来ます。
----
-お知らせありがとうございます。$keyの値が数字のみの文字列...
-この挙動は、過去のソースで行われていた処理と同じ事をして...
return preg_match('/^[0-9a-f]+$/i', $key) ?
substr(pack('H*', '20202020' . $key), 4) ...
-この処理は [[cvs:func.php]] (r1.30) で追加されていて、そ...
-で、[[ぱんだ]]さんはこれ(対応)をどこで見つけたのだらう・...
-[[PHPfunc:pack]] のコメントをあたっても、特にこの回避策...
-えーと。
--原因1: pack('H*', $key)の$keyが数値のとき、期待した結果...
---これについては、そういう仕様なのかどうかはわかりません。
--原因2: rename.inc.phpの290行目あたりで、配列の添え字を...
foreach ($pages as $old=>$new)
$ret['body'] .= '<li>' . make_pagelink(decode($old)) .
[[配列の仕様>http://www.php.net/manual/ja/language.types....
>あるキーが、整数の標準的な表現形式である場合、 そのよう...
<
--回避方法:decode()関数側で、[[型キャスト>http://www.php....
return preg_match('/^(?:[0-9a-f]{2})+$/i', $key)
? pack('H*', (string)$key)
: $key;
--実証コード:
<?php
$key = strtoupper(bin2hex('PHP'));
var_dump($key); // string(6) "504850"
$pack = pack('H*', $key);
var_dump($pack); // string(3) "PHP"
$arr = array($key => 'piyo');
var_dump($arr); // array(1) {
// [504850]=> ...
// string(4) "piyo"
// }
foreach ($arr as $_key => $_value) {
var_dump($_key); // int(504850) ...
}
$pack = pack('H*', $_key);
var_dump($pack); // string(0) ...
$__key = (string)$_key;
var_dump($__key); // string(6) "504850"
$pack = pack('H*', (string)$_key);
var_dump($pack); // string(3) "PHP"
?>
-そうか、PHPも型キャストが使えたんだっけか (^^; intで値が...
-PHP-4.3.11でpack()のバグが直ったらしいです。 -- [[okkez]...
- SxwmJLEkeKejGl -- [[DnLUXdqNliJijZqLG]] &new{2014-01-31...
- qLKJzcwNlqTJkSsGX -- [[ygutzwevtbr]] &new{2014-02-15 (...
- HfAdfvLut -- [[Xplbzfnh]] &new{2014-02-15 (土) 18:37:19};
- bcElWYZNtXexq -- [[Qhhpbasf]] &new{2014-03-18 (火) 15:1...
- rNYbCVUQjqheJZrTIdN -- [[Qaybqcnw]] &new{2014-05-14 (水...
- pTgXHCouUvulzmHS -- [[Bewbwbql]] &new{2014-05-16 (金) 2...
- YkyFqFLJKa -- [[axrsvh]] &new{2014-06-17 (火) 05:43:38};
- test -- &new{2014-06-17 (火) 08:50:26};
#comment
終了行:
*decodeの挙動が怪しい? [#fd1fce1b]
-ページ: [[BugTrack2]]
-投稿者: [[ARAI]]
-優先順位: 重要
-状態: 完了
-カテゴリー: 本体バグ
-投稿日: 2005-03-06 (日) 16:03:44
-バージョン: 1.4.5rc1 ~ 1.4.5_1
** 修正 [#xb15887b]
- [[cvs:lib/func.php]] (1.34, 1.36-1.38)
**メッセージ [#y930c70d]
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/pukiwiki/pu...
以降、decodeが期待の動作をしない場合がある?ようです。
簡単な再現例として、[[1.4.5_1におけるPHP>http://pukiwiki....
挙げておきます。
「以下のファイルをリネームします。」の所で、
-[[PHP]]→新ページ名
のように表示されるべきところが、
-→新ページ名
となります。
取り敢えず、decodeをlib/func.php 1.26版に戻すか、
return preg_match('/^[0-9a-f]+$/i', $key) ? pack('H*', "...
とすることで回避出来ます。
----
-お知らせありがとうございます。$keyの値が数字のみの文字列...
-この挙動は、過去のソースで行われていた処理と同じ事をして...
return preg_match('/^[0-9a-f]+$/i', $key) ?
substr(pack('H*', '20202020' . $key), 4) ...
-この処理は [[cvs:func.php]] (r1.30) で追加されていて、そ...
-で、[[ぱんだ]]さんはこれ(対応)をどこで見つけたのだらう・...
-[[PHPfunc:pack]] のコメントをあたっても、特にこの回避策...
-えーと。
--原因1: pack('H*', $key)の$keyが数値のとき、期待した結果...
---これについては、そういう仕様なのかどうかはわかりません。
--原因2: rename.inc.phpの290行目あたりで、配列の添え字を...
foreach ($pages as $old=>$new)
$ret['body'] .= '<li>' . make_pagelink(decode($old)) .
[[配列の仕様>http://www.php.net/manual/ja/language.types....
>あるキーが、整数の標準的な表現形式である場合、 そのよう...
<
--回避方法:decode()関数側で、[[型キャスト>http://www.php....
return preg_match('/^(?:[0-9a-f]{2})+$/i', $key)
? pack('H*', (string)$key)
: $key;
--実証コード:
<?php
$key = strtoupper(bin2hex('PHP'));
var_dump($key); // string(6) "504850"
$pack = pack('H*', $key);
var_dump($pack); // string(3) "PHP"
$arr = array($key => 'piyo');
var_dump($arr); // array(1) {
// [504850]=> ...
// string(4) "piyo"
// }
foreach ($arr as $_key => $_value) {
var_dump($_key); // int(504850) ...
}
$pack = pack('H*', $_key);
var_dump($pack); // string(0) ...
$__key = (string)$_key;
var_dump($__key); // string(6) "504850"
$pack = pack('H*', (string)$_key);
var_dump($pack); // string(3) "PHP"
?>
-そうか、PHPも型キャストが使えたんだっけか (^^; intで値が...
-PHP-4.3.11でpack()のバグが直ったらしいです。 -- [[okkez]...
- SxwmJLEkeKejGl -- [[DnLUXdqNliJijZqLG]] &new{2014-01-31...
- qLKJzcwNlqTJkSsGX -- [[ygutzwevtbr]] &new{2014-02-15 (...
- HfAdfvLut -- [[Xplbzfnh]] &new{2014-02-15 (土) 18:37:19};
- bcElWYZNtXexq -- [[Qhhpbasf]] &new{2014-03-18 (火) 15:1...
- rNYbCVUQjqheJZrTIdN -- [[Qaybqcnw]] &new{2014-05-14 (水...
- pTgXHCouUvulzmHS -- [[Bewbwbql]] &new{2014-05-16 (金) 2...
- YkyFqFLJKa -- [[axrsvh]] &new{2014-06-17 (火) 05:43:38};
- test -- &new{2014-06-17 (火) 08:50:26};
#comment
ページ名: