2010年1月26日

[PHP-users 34967] Re:output_add_rewrite_var で正しくリライトされない

中瀬です

windows環境で
Apache2.0.x + PHP 5.2.12
Apache2.2.x + PHP 5.2.12
eclipse 3.5 + PHP 5.2.9
いずれの場合も以下のスクリプトを実行しても結果は正常でした。

<?php
output_add_rewrite_var('a', '1');
//for ($i = 1; $i <= 2000; ++$i) {
// printf("<a href=\"%04d.html\">%04d</a>\n", $i, $i);
//}
?>
<a href="0001.html">0001</a>
<a href="0002.html">0002</a>
<a href="0003.html">0003</a>
<a href="0004.html">0004</a>
<a href="0005.html">0005</a>
<a href="0006.html">0006</a>
...(中略)...
<a href="1998.html">1998</a>
<a href="1999.html">1999</a>
<a href="2000.html">2000</a>


<JQ2010012615133213.48839357@xxxxx> の、
"[PHP-users 34962]output_add_rewrite_varで正しくリライトされない" において、
"harai@xxxxx"さんは書きました:

> はらいと申します。
>
> output_add_rewrite_var() の挙動について、
> ファイル中の <a> タグに対し、リライトが行われなかったり、
> リライト位置が不適切になるという現象が起こっております。
>
> Google で、output_add_rewrite_var site:php.gr.jp
> などの検索を試みたのですが、不具合や解決の情報にたどり着けなかったため、
> ここで質問させていただけますでしょうか。
>
> 環境は、Apache 2.2 (Windows) + PHP 5.2.12 (Windows バイナリ) です。
>
> まず、正しい動きをするコードです。
> -----
> <?php
> output_add_rewrite_var('a', '1');
> for ($i = 1; $i <= 2000; ++$i) {
> printf("<a href=\"%04d.html\">%04d</a>\n", $i, $i);
> }
> -----
>
> 上記のソースコードのうち、以下のように、
> printf の出力箇所を静的に展開したものを実行すると、
> 挙動がおかしくなります。
>
> -----
> <?php
> output_add_rewrite_var('a', '1');
> ?>
> <a href="0001.html">0001</a>
> <a href="0002.html">0002</a>
> <a href="0003.html">0003</a>
> <a href="0004.html">0004</a>
> <a href="0005.html">0005</a>
> <a href="0006.html">0006</a>
> <a href="0007.html">0007</a>
> <a href="0008.html">0008</a>
> <a href="0009.html">0009</a>
> <a href="0010.html">0010</a>
> <a href="0011.html">0011</a>
> ...(中略)...
> <a href="1998.html">1998</a>
> <a href="1999.html">1999</a>
> <a href="2000.html">2000</a>
> ---
>
> 私の環境では、2000個のリンクのうち、8か所について、
> それぞれ以下のような現象が起こっています。
>
> 【リライトされない】
> <a href="0858.html">0858</a>
> <a href="1858.html">1858</a>
>
> 【リライトの位置が不適切】
> <a href="0429.html"?a=1>0429</a>
> <a href="0572.html"?a=1>0572</a>
> <a href="0715.html"?a=1>0715</a>
> <a href="1429.html"?a=1>1429</a>
> <a href="1572.html"?a=1>1572</a>
> <a href="1715.html"?a=1>1715</a>
>
> PHP 5.2 系列のちょっと古いバージョンでおかしくなったので、
> 5.2.12 にアップデートしたのですが、ダメでした。
>
> なお、Linux版の PHP 4.4.8 では正しく動作しています。
>
> 不具合のリンクのうち、番号の下3桁が奇妙に一致するので、
> ファイル中の何バイト目かに登場するかに関係ありそうな気がするのですが…。
>
> よろしくお願いします。
> _______________________________________________
> PHP-users mailing list PHP-users@xxxxx
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
>


--------------------------
中瀬

http://cmssvr.sytes.net/
--------------------------

_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2010年1月26日 19:19
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/92821
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。