PHPでの質問です。


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

上記のような膨大なデータがある際に
$dataを書き込みをするモノを作成しているのですが
受け取ったデータが空である時に
文字列(2バイト空白など)をいれたいと思っております。
それぞれのデータを見て
$_POST["a"] == ""
$_POST["b"] == ""
$_POST["c"] == ""
$_POST["d"] == ""
  ・
  ・
  ・
と記載するわけにもいかず
どのようにすれば効率よく受け取ったデータの
中身を判断できるかアドバイスいただきたいとおもいます。
宜しくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/01/30 01:03:30
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:GEN111 No.1

回答回数472ベストアンサー獲得回数58

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

とかでは?

id:quocard

なるほど。

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

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

2007/01/30 01:02:22
id:JTCY No.2

回答回数21ベストアンサー獲得回数1

ポイント23pt

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

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

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

id:quocard

ありがとうございます。

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

2007/01/30 01:03:00
id:inokuni No.3

回答回数1343ベストアンサー獲得回数21

ポイント22pt
foreach($_POST AS $key => $value){
	if(empty($value)){
		$_POST[$key] = '';
	}
}
id:quocard

ありがとうございます。

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

2007/01/30 01:03:16
id:pacochi No.4

回答回数247ベストアンサー獲得回数113

ポイント22pt

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

$_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;
id:quocard

ありがとうございます。

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

2007/01/30 01:03:16

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません