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

Yoshiaki Yanagimoto yanagimoto @ ask-art.jp
2010年 1月 26日 (火) 21:00:02 JST


柳本です。

補足ですが、
コマンドラインからphpを実行した場合は正常に動作するようです。
あと、aからbに変更しただけでも正常になるので、
PHP内部の正規表現で何かおかしな事になってる予感が・・・

(2010/01/26 19:28), Yoshiaki Yanagimoto wrote:
> 柳本です。
> 
> 下記の環境で再現しました。
> OS:Windows XP Home SP3
> Apache:2.2.14
> PHP:5.2.12
> 
> 
> ・ソース
> <?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="1999.html">1999</a>
> <a href="2000.html">2000</a>
> 
> 
> ・リライトされず
> <a href="0426.html">0426</a>
> <a href="0993.html">0993</a>
> <a href="1276.html">1276</a>
> 
> 
> ・リライト位置がおかしい
> <a href="0284.html"?a=1>0284</a>
> <a href="0851.html"?a=1>0851</a>
> <a href="1418.html"?a=1>1418</a>
> <a href="1843.html"?a=1>1843</a>
> <a href="1985.html"?a=1>1985</a>
> 
> 
> 複数回実行してみましたが内容に変化はありませんでした。
> 
> 
> (2010/01/26 15:13), harai @ netcompass.co.jp wrote:
>> はらいと申します。
>>
>> 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 @ php.gr.jp
>> http://ml.php.gr.jp/mailman/listinfo/php-users
>> PHP初心者のためのページ - 質問する前にはこちらをお読みください
>> http://oldwww.php.gr.jp/php/novice.php3
>>
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
> 



PHP-users メーリングリストの案内