- ベストアンサー
文字の置換?
http://php.eweb-design.com/1301_mail.html さんから 文字コードEUC版をダウンロードさせいていただて、フォーム作成の勉強をしているのですが、疑問に思う点がいくつかあります。 if($esse == 1) { $flag = 0; $length = count($eles) - 1; foreach($_POST as $key=>$var) { $key = strtr($key, $string_from, $string_to); if($var == "eweb_submit") ; else { for($i=0; $i<=$length; $i++) { if($key == $eles[$i] && empty($var)) { $errm .= "<FONT color=#ff0000>「".$key."」は必須入力項目です。</FONT><BR>\n"; $flag = 1; } } } } の部分の $key = strtr($key, $string_from, $string_to); のところなのですが、$keyに含まれる文字から$string_fromを検索し$string_toに置換することだと思うのですが、、、$string_fromも$string_toも どこの記述を見ても文字列が代入されていません。 過去ログを見ると http://oshiete1.goo.ne.jp/qa3140724.html?ans_count_asc=2 // 文字の置き換え $string_from = "\"; $string_to = "ー"; のような記述があるようなのですが、私がダウンロードしたファイルにはありません。どなたか詳しい方がいらしたら教えてください。 あと、 //--- メールのレイアウトの編集 --- 開始 -------------------> $body="「".$sbj."」からの発信です\n\n"; $body.="-------------------------------------------------\n\n"; foreach($_POST as $key=>$var) { $key = strtr($key, $string_from, $string_to); if($var == "eweb_submit") ; else $body.="[".$key."] ".$var."\n"; } $body.="\n-------------------------------------------------\n\n"; $body.="送信日時:".date( "Y/m/d (D) H:i:s", time() )."\n"; $body.="ホスト名:".getHostByAddr(getenv('REMOTE_ADDR'))."\n\n"; //--- 終了 ---> というところで、 if($var == "eweb_submit") ; else $body.="[".$key."] ".$var."\n"; のようにifのあとにすぐelseがきているのはどうしてですか? まったくの初心者で、申し訳ないですが、 どうぞ、よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>どこの記述を見ても文字列が代入されていません。 要らなくなって変数は消したけど関数を消し忘れたか 変数をうっかり消してしまったか、もう触るのをやめたかでしょう。 公開日もだいぶ古いし、ソースも見難いので 勉強目的なら違うとこを探した方がいいでしょう。 >ifのあとにすぐelseがきているのはどうしてですか? if (真) のときは何もしないってことです。 行数を減らしたのでしょうけど、余計分かりにくいので見習わないように。
お礼
そうですね、もっとわかりやすいソースで勉強しようと思います。 ifの後に何もないのは、何もしないってことなんですね。勉強になりました。ありがとうございました。