うーん思ったような動作をみせてくれないので困り果てています。
ケータイサイトの作成に、PHPのスクリプト自体はEUC-JPで処理して、表示する際にob_startをつかってSJISとして表示しているのですが…
なんか動作が微妙になってきた。。。
予想外の動きが。。。
片方のスクリプトではGETをforeachしたときにvar_dumpするとSJIS文字として表示させるのですが、もう片方はEUC-JP文字として表示されます。。
.htaccessの内容が
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
php_value mbstring.language "Japanese"php_value mbstring.internal_encoding "EUC-JP"php_flag mbstring.encoding_translation On
php_value mbstring.http_output "SJIS"
php_value mbstring.http_input "SJIS"
php_value mbstring.script_encoding "EUC-JP"
#php_value mbstring.detect_order "EUC-JP,SJIS,JIS,UTF-8,ASCII"```
となっています。
a.phpというページのフォームからGETのwordパラメータとして違うスクリプト(b.php)に送っています。
b.phpでは値を受け取ってからGETをforeachして、urlencodeをかけて、htmlの中にaタグにwordパラメータとしてc.phpに送ります。
c.phpではb.phpに戻るためにGETのwordパラメータをaタグに入れます。この前に、urlencodeをかけます。
で、b.phpのGETのwordパラメータを表示した場合と、c.phpでGETのwordパラメータを表示(var_dump)した場合に、b.phpではSJISとしてc.phpはEUC-JPとして
表示されてしまいます。。。
a.php
```html
<input type="text" name="word" >
|
b.php
1
2
3
4
5
6
7
|
<?php
foreach($_GET as $key => $value){
var_dump($value);//テストで表示させています。
$url .= "&$key=".urlencode($value);
}
?>
<a href="<php? echo $url ?>">リンク</a>
|
c.php
1
2
3
4
5
6
7
8
|
<?php
foreach($_GET as $key => $value){
var_dump($value);
$back_url .= "&$key=".urlencode($value);
}
?>
<a href="<php? echo $back_ur ?>l">戻る</a>
|
原因がさっぱりわからん。。。
また明日考えて見ます。。。