-2

私はこの配列を持っています:

[ID] => 荒川之下流三十景-その二十三「赤羽之景」__35.79_139.72
[Email] => 
[InBuildingAddress] => 
[Price] => 
[Street] => 
[Title] => 荒川之下流三十景 その二十三「赤羽之景」
[Website] => 
[Zip] => 
[Rating Star] => 0
[Rating Weight] => 0
[Latitude] => 35.7865334803033
[Longitude] => 139.716800710514
[Building] => 
[City] => Unknown_Japan
[OpeningHour] => 
[TimeStamp] => 0000-00-00 00:00:00
[CountViews] => 0

それから私はこのようなことをします:

    $output[$info['ID']] = $info; //mess up here
    $tes = $info['ID']['Title'];

よく推測してください:それはめちゃくちゃです。混乱する可能性がある理由は、$info['ID']がASCIIではないためです。それでも私はそれを$output[$info['ID']]のキーとして使用しています。

基本的に、PHPの配列の内容は日本語でもかまいません。これは本当ですか?

どうしたの?私が得たエラーは次のとおりです。

デバッグ警告:/sdfdsfdf/api/test2.php行36-変数に要素????????-??????????? __ 35.79_139.72が見つかりませんデバッグ警告:/ sdfdsfdf / api / test2.php 36行目--main()[function.main]:システムのタイムゾーン設定に依存することは安全ではありません。date.timezone設定またはdate_default_timezone_set()関数を使用する必要があります。これらの方法のいずれかを使用してもこの警告が表示される場合は、タイムゾーン識別子のスペルを間違えている可能性があります。代わりに「7.0/夏時間なし」に「アジア/クラスノヤルスク」を選択しました

非常に多くの疑問符。

なぜこうなった?PHP内で実際に何が起こっているのですか?そのようなことをどこでもっと学ぶことができますか?最も重要なことは、この状況に対処するための最良の方法は何でしょうか?PHPに内部的に常にUTF-8を使用するように指示する必要がありますか?PHP配列は本質的に非ASCII値を持つことができませんか?

4

1 に答える 1

3

これを実行する:

$utf8str = '荒川之下流三十景-その二十三「赤羽之景」__35.79_139.72';
$arr = Array(
    $utf8str => $utf8str,
);
var_dump($arr);


$arr[$utf8str] = "test";
var_dump($arr);

私はこれを得る:

array
  '荒川之下流三十景-その二十三「赤羽之景」__35.79_139.72' => string '荒川之下流三十景-その二十三「赤羽之景」__35.79_139.72' (length=72)

array
  '荒川之下流三十景-その二十三「赤羽之景」__35.79_139.72' => string 'test' (length=4)

したがって、PHPはutf8文字を配列キーとして処理できます...


関連する警告については、date最初に Google を使用してください。質問をして、同じ質問に対する回答が何度も出てくるのを待つ方が速いです (それがあなたが反対票を投じられた理由だと思います)。

Google検索

于 2012-06-01T09:59:48.967 に答える