【PHP】$_SERVER

結構、PHPで$_SERVERの環境変数を参照して使用するけど、結構忘れてしまうのでメモ。

$_SERVER[‘REMOTE_ADDR’] //現在ページをみているユーザの IP アドレス

110.111.113.22  など

$_SERVER[‘SERVER_SOFTWARE’] //サーバーソフト名

Apache

$_SERVER[‘SERVER_PROTOCOL’] //ページがリクエストされた時のプロトコル名とバージョン

HTTP/1.1

$_SERVER[‘REQUEST_METHOD’] //ページがリクエストされた時のリクエストメソッド名

POST、GETなど

$_SERVER[‘REMOTE_HOST’] //アクセス元ホスト

サーバーによっては出ない場合がある。

$_SERVER[‘HTTP_ACCEPT_LANGUAGE’] //パソコン言語設定

ja-jp

$_SERVER[‘HTTP_USER_AGENT’] //ユーザーエージェント

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3

$_SERVER[‘SERVER_NAME’] //サーバーのホスト名

takanix.com

$_SERVER[‘PHP_SELF’] //現在実行しているスクリプトのファイル名

/test.php

$_SERVER[‘DOCUMENT_ROOT’] //スクリプトのドキュメントルートディレクトリ

/home/takanix.com/htdocs など

$_SERVER[‘HTTP_HOST’] //リクエストのHost

takanix.com

$_SERVER[‘QUERY_STRING’] //ページがリクエストされた時に、検索引数があればそれが格納される。

a=1&b=2&c=3

$_SERVER[‘HTTP_REFERER’] //現在のページの前に参照していたページのURL

https://takanix.com/index.php

$_SERVER[‘REMOTE_PORT’] //アクセス元ポート番号

61197

$_SERVER[‘SERVER_PORT’] //サーバーポート 通常80

80

$_SERVER[‘SCRIPT_NAME’] //スクリプトパス

/test.php

$_SERVER[‘argv’] //スクリプトに渡された引数を配列にしたものです。

on

$_SERVER[‘HTTPS’] //https接続かを判別。
上記の赤文字はとても使えます。

カテゴリー:PHPコメント(0)

【PHP】半角・全角文字の統一

【半角・全角文字の統一】
mb_convert_kana( 文字列 , “オプション” , “エンコーディング” );
【変換オプション】
r 「全角」英字を「半角」に
R 「半角」英字を「全角」に
n 「全角」数字を「半角」に
N 「半角」数字を「全角」に
a 「全角」英数字を「半角」に
A 「半角」英数字を「全角」に
s 「全角」スペースを「半角」に
S 「半角」スペースを「全角」に
k 「全角カタカナ」を「半角カタカナ」に
K 「半角カタカナ」「全角カタカナ」に
h 「全角ひらがな」「半角カタカナ」に
H 「半角カタカナ」「全角ひらがな」に
c 「全角カタカナ」「全角ひらがな」に
C 「全角ひらがな」「半角カタカナ」に
V 濁点付きの文字を1文字に変換。K、Hとともに使用
半角カタカナを全角カタカナに変換
$body=mb_convert_kana($_POST[“body”],”K”,”UTF8″);
全角カタカナを半角カタカナに変換
$body=mb_convert_kana($_POST[“body”],”k”,”UTF8″);
全角英数字を半角英数字に変更(記号も対象)
※一部だめな記号もある
$body =mb_convert_kana($_POST[“body”],”rna”,”UTF8″);

カテゴリー:PHP, Tipsコメント(0)

【PHP】メール送信コード

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の()内にソースで指定している文字エンコードを追加する。

カテゴリー:PHPコメント(0)

【cron】指定時間にPHPプログラムを実行する。設定覚え書き(ドライブネットワーク)

結構、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」と入力し終了して下さい。

 

カテゴリー:PHP, Tipsコメント(2)