POSTの値を配列として受け取ってソースを効率的にしたい。
//ポストの値を配列を使って受け取る方法。
$post_key = array_keys($_POST);
$post_val = array_values($_POST);
for ($i = 0; $i < count($post_key); $i++) {
$$post_key[$i] = mb_convert_encoding($post_val[$i], "EUC-JP", $enc_input);
}
今こんな感じで書いていて、前はこんな感じで書いていました。
if( isset( $_POST['com_name'])){//会社名
$com_name = mb_convert_encoding($_POST['com_name'], "EUC-JP", "$enc_input");
}
こういうのがずっと続きます。
流石に効率が悪いので配列を使って受け取りたいのですが、
なかなかうまくいきません。
教えていただけたら嬉しいです。
$enc_inputという変数を準備しておいてダミーで送らせた内容をいくつかの文字コードで受け取りそれをEUC-JPに置き換えてるだけです。
出力のときにエンコードしてるのでソースの中でごちゃごちゃしてるとかはないと思います。
回答(1件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.1ベストアンサー20pt
送信するページのformがどうなっているか分からないので推測での回答になりますが
------------------------------
foreach($_POST as $key => $val) {
$$key = mb_convert_encoding($val, "EUC-JP", $enc_input);
}
------------------------------
としたり
------------------------------
$post_data = array();
foreach($_POST as $key => $val) {
$post_data[$key] = mb_convert_encoding($val, "EUC-JP", $enc_input);
}
------------------------------
といった方法や、
送信フォームを
------------------------------
<form method="post">
<input type="text" name="post_data[]">
<input type="text" name="post_data[]">
<input type="text" name="post_data[]">
<input type="submit">
</form>
------------------------------
としておけば、$_POST["post_data"]に
$_POST["post_data"][0] = 一つ目の入力フォームの値
$_POST["post_data"][1] = 二つ目の入力フォームの値
$_POST["post_data"][2] = 三つ目の入力フォームの値
と入って来るので簡単なループで処理も可能かと思いますが。(どの項目に対する入力なのか判別が難しいのでこれは現実的でないと思います)
この回答へのお礼
無事追加できました。
ありがとうございます。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示












