【PHP】半角・全角文字の統一
2011年7月10日 3:44 PM
Tips
2011年7月10日 3:44 PM
2011年7月10日 3:36 PM
IEとFireFoxで、フォームの送信をEnterキーで行うと
フォームの内容が送信されずに困っていました。
IEとFireFoxでは、テキストフォームが1個だとEnterキーを押しても送信出来ないとのこと。
その他のブラウザでは、問題ないのに、この挙動は結構悩んでいました。
解決策として、隠しテキストフォームを追加し対応いたしました。
その時のソースが以下の通りです。もし、同じ内容で困っている方がいらっしゃいましたら一度使用してみてください。
<input type=”text” name=”hidden” style=”display: none;” value=”” />
style要素で非表示にするのが大切な部分です。
2011年7月10日 3:20 PM
PHPでメール送信をする最も簡単なコードです。送信先 test@mail.com送信元 test@abc.comエンコード UTF-8
$mail=”test@mail.com”;$head = “From: test@abc.com”;$subject = “件名です。\n”;
$body .= “本文です。\n”;
$body .= “———————————————————————–\n”;
$body .= “送信日時:”.date(“Y/n/j H:i:s”, time()).”\n”;
// .=で文字と文字を結合します。
// date()は、日付出力の関数です。
// \nで目に見えない改行処理です。
// Shift_JISなら、【\n】は【¥n】と記述。
// メール送信
mb_language(‘ja’);
mb_internal_encoding(‘UTF8’);
mb_send_mail($mail, $subject, $body, $head);
//mb_internal_encodingの()内にソースで指定している文字エンコードを追加する。
2011年7月10日 3:13 PM
結構、cronというかSSHでの設定は嫌ですね。
自社サーバーならまだいいけど、クライアントのサーバーを設定するのは結構気をつけるし疲れます。
クライアントのサーバー「Drive Network(ドライブネットワーク)」ですが、設定方法をメモしておきます。
他のサーバーは、管理画面がありそこでcron設定が出来ますが、管理画面がなくSSHのみでの設定の場合に役立つかもしれません。
サーバー:FreeBSD Linuxなら同じかと。
当方、Mac OS X Lionのターミナルを使って作業。OSXならどのバージョンでも大丈夫。
1)SSH接続
UNIXコマンド 「ssh システムアカウント名@サイトドメイン」を入力します。
Drive Networkの場合は、csからはじまる番号がシステムアカウント名となるので、「ssh cs123456789@test.com」という感じで。
Drive Networkは、アカウントを複数作れますが「admin」のアカウントを使用してください。
※admin@〜のアカウントのシステムアカウント名を使って下さいね。 分からなければ、Drive Networkのオンラインヘルプページ→アカウント情報一覧で、システムアカウント名とパスワードなど確認できます。
ssh〜コマンドを入力するとパスワードの入力が求められるので、admin@〜のパスワードを入力して下さい。
※パスワードは、表示されません。
パスワードが正しく通ると、下記赤枠のメッセージが表示されます。
上記の「0 0 * * 1 /usr/local/bin/php /home/cs123456789/test.com/htdocs/test/test.php」のような一行は、指示コマンドです。
Drive Networkは、「/home/契約アカウント番号/ドメイン/htdocs/〜」がファイル名の指示になります。ファイル名は、homeディレクトリからの相対パスで書いて下さい。
2)あとは、設定だけです。
crontab -l で設定内容の確認。
crontab -r で設定削除。削除するかと聞かれたら、「y」か「n」を入力で削除できます。
crontab -e で編集。viというエディタがターミナル内でたちあがるので、そこで操作。
3)基本的なviの操作は以下のような感じです。
crontab -e
まず出てきた画面が以下です。この画面で入力された文字を消す場合は、矢印キーで移動して「x」キーで削除。
新規の場合は、何も入力されていないので、
「esc」キーを押して、viを入力モードに変えます。「esc」押すだけです。
挿入コマンド「i」を押します。これはコマンドなので、実際に「i」は入力されません。
その後、例えば「0 0 * * 1 /usr/local/bin/php /home/cs123456789/test.com/htdocs/test/test.php」とペーストすればOK。
ペーストは出来るので、あらかじめテキストエディットなどでコマンドを書いておくと便利です。
cronの指示は、改行せずに一行で書きます。複数指示がある場合は、2行目、3行目と書きます。
今回、cronの指示に「/usr/local/bin/php」と入れてあるのは、その後に続く「/home/cs123456789/test.com/htdocs/test/test.php」 がPHPのプログラムだからです。
指定時間に、自動で指定のファイルのPHPプログラムを実行するという事です。
※指示は、必ず半角スペースで区切って入力して下さい。
入力が終わったら、再度「esc」を押し、コマンドモードに戻し、「:w」で保存。「:q」でviを終了です。
ちなみに、保存せず戻りたい場合は、「:q!」と押せば良いです。
入力している時に間違えたら、一旦「esc」でコマンドモードに戻る「x」を押し、また「esc」を押し入力モードに戻って下さいね。
終わったら、確認のため、「crontab -l」で確認して下さい。
4)最後に、cronの書き方です。
上記3)をサンプルに説明します。
*□*□*□*□*□/usr/local/bin/php□/home/cs123456789/test.com/htdocs/test/test.php
※□は、半角スペースの意味です。
最初の5つの「*」を置き換えます。
5つの「*」は左から1つずつ意味があり、
分(0-59) 時(1-24) 日(1-31) 月(1-12) 曜日(0-7) となっています。
30 9 * * * で9時半に実行
*/3 * * * * で3分おきに実行
0 */1 * * * で1時間おきに実行
0 0 * * 1 で月曜日の0時0分に実行
などなど
ターミナルは、最後「exit」と入力し終了して下さい。
2011年5月6日 8:35 PM
僕が興味のある事をこの「Tips」でつぶやいていきたいと思っています。
特にAppleとNintendoが好きなこの僕は、まだまだ子供なのかもしれません。