• 締切済み

php4からphp5へ移行した際のurlencodeの処理(文字化け)

php4からphp5へアップグレードをしたのですが、突然urlencodeの文字列が化けてしまうようになってしまいした。 リンクに result.php?LOCATION1=<?php echo urlencode(東京都) ?> とすると result.php?LOCATION1=<br /><b>Notice</b>: Use of undefined constant 東京都 - assumed '東京都' in <b>/home/***/***/***/***/***/13.php</b> on line <b>75</b><br />%C5%EC%B5%FE%C5%D4 というような感じになってしまいます。 php.iniの設定もしているのですが、 既存で考えられるものはほぼ試してみました。 新たに付加しなければいけないものなのでしょうか? 「mbstring」や「Magic quotes」あたりを中心に奮闘中です。 (的違いでしたらどなたか教えて下さい・・・。) ソースはできるだけこのままで何か解決策はないでしょうか? 宜しくお願い致します。

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

constantというのは定数のことです define('東京都', '北海道'); echo 東京都; echo "<br>\n"; echo '東京都'; これの違いがわかれば引用符の必要性もわかるのではないでしょうか エラーの意味は 未定義の定数 東京都 が使われているので '東京都' という文字列とみなして処理します ということです(PHPに余計な仕事をさせないためにも引用符をつけましょう) PHP4で動いていた原因ですが error_reporting(E_ALL ^ E_NOTICE); としてnotice errorを表示しないようにすればこのエラーは表示されなくなります おそらくPHP4のphp.iniではこの設定になっていたのだと思われます

  • YSW
  • ベストアンサー率23% (33/141)
回答No.2

答えは「'」です。または「"」。

noname#129183
質問者

お礼

ありがとうございます。 今確認して入力したところ正常に動作しました。 やはり必ずいれなければいけないのでしょうか?

回答No.1

PHP4からPHP5のもんだいじゃなく、 基本的な文法がおかしい urlencode(東京都) 何か足らない気がしない? これで動作していたということの方が驚き 出力メッセージに、ちゃんと書いてありますけど > Use of undefined constant 東京都

noname#129183
質問者

お礼

ありがとうございます。 今確認して入力したところ正常に動作しました。 やはり必ずいれなければいけないのでしょうか?

noname#129183
質問者

補足

ketaimania さんへ これで動作していたんですが・・・。 何が足りないのでしょうか?! 教えて下さい!! >Use of undefined constant 東京都 の意味とは?? 勉強不足ですみません・・・。