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

PHPでの質問です。

$data = $_POST["a"].",".$_POST["b"].",".$_POST["c"].",".$_POST["d"];




上記のような膨大なデータがある際に
$dataを書き込みをするモノを作成しているのですが
受け取ったデータが空である時に
文字列(2バイト空白など)をいれたいと思っております。
それぞれのデータを見て
$_POST["a"] == ""
$_POST["b"] == ""
$_POST["c"] == ""
$_POST["d"] == ""



と記載するわけにもいかず
どのようにすれば効率よく受け取ったデータの
中身を判断できるかアドバイスいただきたいとおもいます。
宜しくお願いいたします。

●質問者: quocard
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP アドバイス データ バイト 作成
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● GEN111
●23ポイント
foreach ($_POST as $key => $value) if ($value == '') $_POST[$key] = "空白" ;

とかでは?

◎質問者からの返答

なるほど。

そういう形もありますね。

参考にさせていただきます。


2 ● JTCY
●23ポイント

空白である際に入れる文字列はすべて同じと仮定します。それならforeach構文が利用できます。

foreach( $_POST as $key => $value) { //配列$_POST内の各キーと値を$key,$valueだとして
 if (empty($value)) { //$valueが空なら
 $value = " "; //$valueに2バイト空白を代入
 }
} //これを$_POSTのすべてのキーと値に対して繰り返す

こんな感じでよいはずです。

◎質問者からの返答

ありがとうございます。

参考にさせていただきます。


3 ● いのくに
●22ポイント
foreach($_POST AS $key => $value){
if(empty($value)){
$_POST[$key] = '';
}
}
◎質問者からの返答

ありがとうございます。

参考にさせていただきます。


4 ● ぱこち
●22ポイント

挿入するのがすべて同じ値なら一文で済みます。

$_POST = preg_replace("/^$/", " ", $_POST);

それぞれ違う値を入れる場合は送信されるデータに合わせたキーを持つ連想配列をあらかじめ作って foreach で回せば良いと思います。

$empty = array('a' => '未記入 a', 'b' => '未記入 b', 'c' => '未記入 c');
foreach ($empty as $key => $val) if (!strlen($_POST[$key])) $_POST[$key] = $val;
◎質問者からの返答

ありがとうございます。

参考にさせていただきます。

関連質問


●質問をもっと探す●



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