PHPは今や5系が主流で、もうすぐ6系が出るとのうわさもありますが、
昔からのアプリケーションを使っている場合などは4系にせざるを得ないときがあります。
さて、2008年9月10日現在、PHP4系の最終版、 4.4.9のwindows版は致命的なエラーがあるとのこと。
現時点では4.4.8にしておきましょう。
ちなみにご存知の型が多いと思いますがテスト環境構築には
XAMPPをおすすめしますよ!(多分今は5系ですが)
PHPは今や5系が主流で、もうすぐ6系が出るとのうわさもありますが、
昔からのアプリケーションを使っている場合などは4系にせざるを得ないときがあります。
さて、2008年9月10日現在、PHP4系の最終版、 4.4.9のwindows版は致命的なエラーがあるとのこと。
現時点では4.4.8にしておきましょう。
ちなみにご存知の型が多いと思いますがテスト環境構築には
XAMPPをおすすめしますよ!(多分今は5系ですが)
頭では認識していても、今日も実装でミスってエラーにしてしまったので記録しておきます。
SQL文、WHERE句がORDER BY句よりも先に記述しなければなりません。
(PHP + MYSQLの経験上。ドキュメントでは未確認。)
そうしないとFatal Errorに。
OPENPNEでUTF-8にSJISが混ざった。
よく調べてみると、phpmyadminもなぜか一部SJISで出力される。
php.iniを調べるも、特に問題点が分からない。
httpd.confはどうだろう?他にも文字コードに関する設定ファイルあっただろうか。
MYSQLも対象か。
<解決策>
php.iniに、SJISのスクリプトが動くための記述があり。
こいつが今回の犯人らしい。
基本的にサーバ内はUTFなのでこれをすべて削除し、SJISの該当ディレクトリの.htaccessに以下を追記。
php_value mbstring.language Japanese
php_value mbstring.internal_encoding SJIS
php_value mbstring.http_input auto
php_value mbstring.http_output SJIS
php_value mbstring.encoding_translation On
php_value mbstring.detect_order auto
php_value mbstring.substitute_character none
これで、SJISのPHPもUTF8も問題なく動く(ハズ)
date(’Y/m/d H:i:s’,strtotime(”+7 day”))
でOK!
strtotime(”+7 day”)で1週間後のタイムスタンプ
date(’Y/m/d H:i:s’,strtotime(”next Sunday”))
なども可
PHPから携帯にメールを送るときは、半角カタカナとか、文字化けに悩むことが結構多い。。。
そんな場合は、
で解決!こんな感じ
$From = joey@hogehoge.com;
$to = joey@bogeboge.com;
$subject = “テストだよ”;
$mail_body = base64_encode(”ヘイ、ジョーイ”);
// カナは半角カナで!
$mail_body = mb_convert_encoding($mail_body,”ISO-2022-JP”,”SJIS”);
$header = “From: $From.\n”;
$header .= “Return-Path: $From.\n”;
$header .= “Reply-To: $From.\n”;
$header .= “Message-ID: {$MessageID}\n”;
$header .= “MIME-Version: 1.0\n”;
$header .= “Content-Type: text/plain;charset=ISO-2022-JP\n”;
$header .= “Content-Transfer-Encoding: base64\n”;
$header .= “X-Mailer:PHP/”.phpversion();
if(!mail($to,$subject,$mail_body,$header)){
echo “失敗”;
}else{
echo “成功”;
}
上記でばっちり!
foreach文は入れ子でも動くみたい。
foreach($hensu['hen'] as $key => $value){
…
foreach($hensu['hen'][$key] as $key2 => $value2){
…
}
}
もっといい方法もあるのだろうか