人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで下記のスクリプトを作成してください。

「common.php」というファイルに
とうきょう => 東京
あいちけん => 愛知
といった感じの連想配列が格納された配列$kenmeiがあります。
つまりキーには日本の都道府県のひらがな名が、
値には漢字名が当てられているということです。

「common.php」があるディレクトリ下に
「ken」というディレクトリにあります。
その中の「あ.php」というファイルに、
上記$kenmeiのキーが「あ」ではじまる県名に関して、
キーと値をvar_dumpしてください。
(つまり「あいちけん」と「愛知」です)

予定としては「あ.php」以外にも五十音全てのファイルを用意するつもりので、
ファイルが増えても管理しやすいよう留意していただければ幸いです。

また、意図したとおりに動くのであれば、どのような形でも結構です。
たとえばファイル名から「あ」という文字を判別するのが難しい場合は
「あ.php」にあらかじめ変数 $kasiramoji='あ' を
用意しておき、それを関数の引数として使用する等の変更は問題ありません。
良いお知恵があれば教えてください。

XP、PHP5という環境でやってます。
よろしくお願いします。


●質問者: taroemon
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Common PHP XP 「KEN」 あいち
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pahoo
●35ポイント

こんな感じでしょうか。

ディレクトリ 'ken' があることが前提です。

また、既存の 'あ.php', 'い,php'‥‥は上書きされます。

mb_internal_encoding('SJIS');//Shift_JIS以外ではファイル名が化ける
$path = './ken/';

//出力用配列を作成
$kenmei_2 = array();
foreach ($kenmei as $yomi=>$kanji) {
 $index = mb_substr($yomi, 0, 1);
 $kenmei_2[$index][$yomi] = $kanji;
}

//ファイルへ出力
foreach ($kenmei_2 as $index=>$arr) {
 ob_start();
 var_dump($arr);
 $outstr = ob_get_contents(); //出力文字列取得
 ob_end_clean();
 $outfname = $path . $index . '.php'; //出力ファイル名
 file_put_contents($outfname, $outstr);
}

蛇足ながら、ファイル名を日本語にする点が気になりました。

ソース中のコメントにも記したとおり、Windows環境ではシフトJIS以外の文字コードセットを使うとファイル名が化けます。urlencode して

$outfname = $path . urlencode($index) . '.php';

にした方が可用性が高くなると思います。


参考サイト

◎質問者からの返答

早速のご回答ありがとうございます。


$kenmei = array('あいち' => '愛知県','いしかわ' => '石川県');

とあわせて、このスクリプトをcommon.phpで実行したところ、

「ken」ディレクトリに「縺.php」というファイルができ、下記が出力されました。

array(2) {

["あいち"]=>

string(9) "愛知県"

["いしかわ"]=>

string(9) "石川県"

}


「あ.php」に'あいち' =>'愛知県'

「い.php」に'いしかわ' =>'石川県'

と出力するにはどのように対応したらよいのでしょうか?

おそらく文字化けのところを私が解消できれば

このスクリプトで完璧だと思うのですが、対応がわかりません。


urlencodeを教えていただきありがとうございます。

これは取り入れてみることにします。


2 ● pahoo
●35ポイント

#1のコメント:

おそらく文字化けのところを私が解消できれば

まず、PHPスクリプトをシフトJISで作成してください。

それから、PHPのデフォルト文字コードセットがシフトJIS以外になっているようでしたら、#1で示した

mb_internal_encoding('SJIS');

が必須です。


※設定された回答回数の上限になりました。さらにフォローが必要でしたら、コメント欄を開けていただくか、回答回数を増やしてください。


参考サイト

◎質問者からの返答

再度のコメントありがとうございます。

この質問でとても勉強になりました。

さっそく活用させていただきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ