2005年09月30日
PHP:strstr()関数
strstr()関数は、文字列中から指定文字列が最初に現れる場所を検索し、検索位置から文字列の最後までを返します。指定文字列が見つからない場合にはfalseを返します。
※正規表現を使用しない文字列一致検索の場合には、ereg()関数などより高速なので便利です。
2005年09月28日
PHP:parse_str()関数
parse_str()関数は、クエリーに付与されているkey=値の部分をグローバル変数に格納します。
アクセス解析の際などに便利な関数です。
PHP:quotemeta()関数
文字列中に含まれるすべてのメタ文字をエスケープする関数です。
2005年09月26日
PHP:crypt()関数
crypt関数は文字列を暗号化する関数です。
crypt($str, $salt); //$strは暗号化する文字列、$saltは暗号化のキーとする文字列
$saltが同一であれば、暗号化の結果は必ず同じになります。
※この関数は、.htpasswdなどに暗号化したパスワードを書き込む際などによく使用します。
PHP:number_format()関数
number_format()関数は、数値を「,」で3桁区切りにして出力します。
小数点以下の桁数・区切り文字を設定可能です。(区切り文字の設定の使用頻度は低いです。)
2005年09月24日
PHP:htmlentities()・htmlspecialchars()関数
htmlentities():文字列をhtmlエンコードします。
htmlspecialchars():文字列中の特定文字「&」「"」「<」「>」をhtmlエンコードします。
html_entity_decode():htmlエンコードされた文字列を元に戻します。
続きを読む "PHP:htmlentities()・htmlspecialchars()関数"
PHP:break・continue
break:while・for・foreachなどのループ処理を途中で終了する場合に使います。
continue:while・for・foreachなどのループ処理の途中で処理をスキップする場合に使います。
2005年09月22日
PHP:explode()関数・implode()関数
explode():文字列を指定区切り文字で分割し、配列を生成します。
※正規表現を使用して文字列を分割するsplit()関数もありますが、正規表現を使用する必要がない場合には、explode()関数のほうが高速です。
implode():配列の各要素を指定区切り文字で連結します。
続きを読む "PHP:explode()関数・implode()関数"
2005年09月21日
PHP:trim()関数
文字列から「\n」「\r」「\t」「\v」「\0」「半角スペース」を取り除く関数です。
trime:文字列前後の空白を取り除く。(一番よく使います。)
ltrime:先頭の空白を取り除く。
rtime:末尾の空白を取り除く。
※この関数は、CSVを読み込んだ際に行の末尾の要素の改行を取り除く場合によく使用します。
2005年09月20日
PHP:addslashes()・stripslashes()関数
addslashes():「'」「"」「\」「NULL文字列」を「\」でエスケープします。
stripslashes():addslashesでエスケープされた文字列を元に戻します。
続きを読む "PHP:addslashes()・stripslashes()関数"
2005年09月19日
PHP:$_SERVER サーバ環境変数
PHPでは、サーバに関する環境変数はグローバル変数$_SERVERに格納されます。
HTTP_REFERERやREMOTE_ADDR、PHP_SELFなどスクリプト構築において欠かせない変数群を簡単に取得できるので、それぞれ暗記しておいて損はないです。
2005年09月18日
PHP:スーパーグローバル変数
PHPでは、$_COOKIEや$_SERVERなど予約済みの変数があります。
2005年09月17日
PHP:foreach構文
foreach構文は、主に
(1)配列から値を取り出す場合
(2)連想配列からキーと値を取り出す場合
などに使用します。
(配列やコレクションの各要素に対して、一連の処理を繰り返し実行したい場合などに使用します。)
※while文のeachによる配列からの取得処理と違って、同配列からの取得処理を同一スクリプト内で何回でも行うことができます。
2005年09月16日
PHP:条件分岐構文(switch)
switch文は、条件式の値にもとづいて処理を実行します。
多岐にわたる分岐処理を行う場合には、if文よりもスマートに記述することができます。
2005年09月15日
PHP:条件分岐構文(if)
if文は、条件式の真偽にもとづいて処理を実行します。
2005年09月14日
PHP:do while構文
do while構文は、指定された条件式がTRUEの間処理を実行します。
※処理が実行されない可能性があるwhile構文とは違い、処理が必ず1回は実行されます。
2005年09月13日
PHP:mb_send_mail()関数
mb_send_mail()関数は、日本語などマルチバイト対応メールを送信する関数です。
2005年09月12日
PHP:postgreSQLへの接続
PHPを使用した、postgreSQLへの接続メソッドです。
function dbc(){
global $dbName, $dbAccount, $dbPassword;
$conid = pg_connect("dbname=$dbName user=$dbAccount password=$dbPassword");
if(!$conid){
print "データベースに接続できません";
exit;
}
return $conid;
}
$dbName = 'DB名';
$dbAccount = 'DBに接続するアカウント名';
$dbPassword = 'DBに接続するアカウントのパスワード';
$conid = dbc(); //DBへ接続
※$conidにはpostgreSQLへの接続リソースが格納されます。
※オプションとしてホスト名をpg_connect関数に持たせることもできます。
2005年09月11日
PHP:曜日を算出
function getYoubi($date){
$sday = strtotime($date);
$res = date("w", $sday);
$day = array("日", "月", "火", "水", "木", "金", "土");
return $day[$res];
}
print getYoubi(20050911); //引数は年4桁月2桁日2桁
※上記の結果、以下のように出力されます。
日
2005年09月10日
PHP:3桁毎にカンマが入っているかどうかをチェック
if(ereg("^[0-9]{0,3}$",$str)){
//3桁以内なのでそのまま
return $str;
}else if(ereg("^[0-9]{1,3}(,[0-9]{3})*,[0-9]{3}$", $str)){
//3桁毎に区切られているのでそのまま
return $str;
}else if(ereg("^[0-9]{3,}$",$str)){
//3桁毎に区切られていないのでカンマを入れる
$str = number_format($str);
return $str;
}else{
//2桁毎にカンマが入っている場合・数字以外が含まれている等
print "不正な文字列です。";
}
PHP:文字列の先頭が空白・タブかどうかをチェック
if(ereg("^[ \t]+", $str)){
print "先頭はタブまたは空白";
}else{
print echo "先頭はタブおよび空白ではない";
}
PHP:文末が改行かどうかをチェック
if(ereg("[\n\r]$", $str)){
print "文末は改行または空白文字";
}else{
print "文末は改行・空白文字ではない";
}
2005年09月09日
PHP:キャラクタクラス・正規表現の繰り返し
正規表現の基本となるキャラクタクラス・量指定子の一覧です。
[0-9]、[a-zA-Z]などのキャラクタクラスは頻繁に使用するので覚えておくと便利です。
続きを読む "PHP:キャラクタクラス・正規表現の繰り返し"
PHP:エスケープシークエンスについて
正規表現の基本となるエスケープシークエンスの一覧です。
正規表現において、\nなど\が直前についた文字は特殊な意味を持つ場合があります。
2005年09月08日
PHP:メタ文字について
正規表現の基本となるメタ文字の一覧です。
メタ文字とは、*や+など、正規表現において文字単体で特殊な意味を持つ文字です。
PHP:x桁の数字をランダムに作成する
パスワードやIDを生成する際に便利なユーザー定義関数です。
rand関数を使用してx桁の文字列を生成します。(文字の重複はナシ)
PHP:多次元配列のソート(usort)
多次元配列を条件付きでソートする場合にはusortを使用するのが便利です。usort関数は、ユーザー定義関数を引数として、多次元配列をソートします。
PHP:多次元配列の扱い方
$MENU = array();
$MENU[0]['name'] = 'YAHOO';
$MENU[0]['url'] = 'http://www.yahoo.co.jp';
$MENU[1]['name'] = 'google';
$MENU[1]['url'] = 'http://www.google.co.jp';
$MENU[2]['name'] = 'MSN';
$MENU[2]['url'] = 'http://www.msn.co.jp';
while(list($key, $value) = each($MENU)){
$name = $value['name'];
$url = $value['url'];
print "<a href=\"$url\" target=\"_blank\">$key.$name</a> ";
}
※上記の結果、以下のように出力されます。
0.YAHOO 1.google 2.MSN
2005年09月07日
PHP:E-mailアドレスをチェック
■簡易的なE-mailアドレスチェック
if(ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+
'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+
\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email)){
print "メールアドレスの可能性がある";
}else{
print "メールアドレスではない";
}
PHP:文字列が半角数字のみかチェック
if(ereg("^[0-9]+$", $str)){
print "半角数字のみ";
}else{
print "半角数字以外も含まれている(値なしも含む)";
}