PHP


PHP

目次

@

エラー演算子 関数の実行に失敗してもエラーメッセージを出力せず、$php_errormsg という名前のグローバル変数にエラーメッセージが入る

<?php
 $fp = @fopen("hoge.txt","w");
 // これでエラーは出ない
 if ($php_errormsg) {
   echo $php_errormsg; // エラーを自分で出力
}
?> 

===、!==

変数の型までチェック

array

$banban = array("HTML", "XHTML", "XML", "XSLT", "RSS");
print($banban[1])  // XHTMLが出力される

array_count_values

配列の要素の出現回数を調べる

連想配列 = array_count_values(配列);

array_pup

配列の末尾の要素を削除し、その要素の内容を返す

末尾の要素 = array_pop(配列);

array_push

配列の末尾に要素を追加

追加後の要素数 = array_push(配列, 追加する要素, 追加する要素, ...)

array_shift

配列の先頭要素を削除し、その内容を返す

先頭の要素 = array_shift(配列);

array_rand

配列の要素をランダムに取得する

srand(種となる整数)
要素のキー(配列) = array_rand(配列, [取り出す要素数])

array_slice

配列から任意の要素を取り出す

取り出した要素(配列) = array_slice(配列, 取り出し開始位置, [取り出す個数]);

array_splice

配列の要素を置換する

削除した要素(配列) = array_splice(配列, 削除開始位置, [削除する個数], [新しい要素(配列)]);

array_unshift

配列の先頭に要素を追加

追加後の要素数 = array_shift(配列, 追加する要素, 追加する要素, ...)

base_convert

base_convert(変数, 変換前の基底, 変換後の基底)

cast

CAST(id AS UNSIGNED)   // id(テキスト型を数値に変換)

checkdate

if(checkdate(2,28,2005)){
  echo "正しい日付です";
}

count

配列の要素数を数える関数。sizeofでも可

count( 配列 )

crypt

文字列を暗号化する関数

crypt( 文字列 , オプション )

オプションの部分にはsaltという暗号化に使用する文字列を指定する

date

日付を参照するだけでなく、ローカル時間の時刻も合わせて参照することができる

  • a --------- am または pm を定義する
  • A --------- AM または PM を定義する
  • d --------- 2桁の日付を定義する
  • D --------- 3文字の曜日 (Sun 〜 Sat) を定義する
  • F --------- フルスペルの英字で月を定義する
  • h --------- 12時間単位 (00 〜 12) の時間を定義する
  • H --------- 24時間単位 (00 〜 23) の時間を定義する
  • g --------- 先頭に 0 をつけない12時間単位 (0 〜 12) の時間を定義する
  • G --------- 先頭に 0 をつけない24時間単位 (0 〜 23) の時間を定義する
  • i --------- 2桁の分 (00 〜 59) を定義する
  • j --------- 先頭に 0 をつけない (0 〜 31)の日を定義する
  • l --------- フルスペルの英字で曜日を定義する
  • L --------- 閏年では 1 を、それ以外は 0 を返す
  • n --------- 先頭に 0 をつけない (0 〜 12) の月を定義する
  • m --------- 2桁のの月 (01 〜 12) を定義する
  • M --------- 3文字の月 (Jan 〜 Dec) を定義する
  • s --------- 2桁の秒 (00 〜 59) を定義する
  • S --------- 英文の序数を表わす接尾語 (th 〜 nd) を定義する
  • t --------- 指定した月の日数 (28 〜 31) を定義する
  • U --------- UNIX時間 (1970年1月1日からの秒数) を定義する
  • w --------- 数値で示す曜日 (0 〜 6) を定義する
  • y --------- 西暦の下2桁を示す年を定義する
  • Y --------- 西暦を4桁で示す年を定義する
  • z --------- その年の1月1日からの通算日を定義する
  • Z --------- タイムゾーンのオフセット秒 ( -43200 〜 43200まで)

explode

$banban = explode(",", "HTML,XHTML,XML,XSLT,RSS");
print($banban[3]);  // XSLTが出力される

file_exists

ファイルまたはディレクトリが存在するかどうかを確認する関数

file_exists( ファイル名 )

fileopen

<?php
 $fp = fopen("file1","w");
 fputs($fp,"こんにちはファイルさん");
 fputs($fp,"ファイルの2行目です");
 fclose($fp);
?>

ファイルの読み出し

<?php
$fi = file("file1");
?> 

$fi[0]に"こんにちはファイルさん" $fi[1]に"ファイルの2行目です"

foreach

foreach (配列 as element) {
}
foreach (配列 as $key => $value) {
}

getdate

$today = getdate();

連想配列を組み合わせて、現在の日付を参照

  • second ---- 現在の秒を定義する
  • mimutes --- 現在の分定義する
  • hours ----- 現在の時定義する
  • mday ------ 現在の月次の日付を定義する
  • wday ------ 現在の曜日番号を定義する
  • mon ------- 現在の月を定義する
  • year ------ 現在の年を定義する
  • yday ------ その年の通算日を定義する
  • weekday --- 現在の曜日の文字列を定義する
  • month ------- 現在の月の文字列を定義する

header

header("Location: http://www.itboost.co.jp/"); // ページの転送

header()関数を呼び出す以前には、いかなる標準出力への出力も存在してはならない

intval

数値 = intval(変数);

isset($var)

変数$varがセットされているかどうか検査する。セットされていればtrue

key

配列のキーを取得する

キー = key(配列);

mb5

文字列のハッシュを求める関数。

md5( 文字列 )

mb_substr( 文字列 , 取り出し位置 , 文字列の長さ , 文字コード )

マルチバイト対応

list

配列のデータを変数にセットする関数

list(変数1, 変数2, ... ) = 配列;

parse_str

クエリ形式の文字列(name1=value1&name2=value2)を解析し、変数や配列にセット

parse_str(文字列, [配列]);
$str = "name=foo&text=Sample";
parse_str($str);
print $name  // foo
print $text  // Sample

print_r

データの構造のみを出力

$array = (1,2,3,4,5);
print_r($array);

session_start

  • セッションの開始(既にセッションが開始されている場合は、セッションを保持し続ける)
  • セッション処理はHTTPヘッダの送信前に行う必要がある
  • php.iniでsession.use_cookies=1にしておく

session_destroy

セッションの終了を明示

// ログアウト処理
session_start();
$_SESSION = array();
session_destroy();
header("Location: login.php");

str_repeat/str_pad

文字列を繰り返し出力する関数

str_repeat( 繰り返し文字列 , 繰り返し回数 )
str_pad( 挿入文字列 , 長さ , 繰り返し文字列 , 挿入位置)

str_padでは挿入文字列の左右に繰り返し文字列を出力できる 挿入位置をSTR_PAD_RIGHTで右に、STR_PAD_LEFTで左に、STR_PAD_BOTHで両側に 繰り返し文字列を出力する

str_replace

str_replace("置換対象の文字列","置換する文字列","最初の文字列");

strstr

文字列を検索する関数 大文字小文字を区別する。stristrは大文字小文字を区別しない 文字列が含まれているときはそれ以降の文字列を返し、含まれていないときは FALSEを返す。

strtoupper/strtolower

strtoupperは大文字に変換、strtolowerは小文字に変換する
文字列の最初の文字だけを大文字にするにはucfirst、単語の最初の 文字だけを大文字にするにはucwordsを使う

strval

文字列 = strval(変数);

substr_count

文字列の出現回数を求める関数

substr_count( 対象文字列 , 検索文字列 )

trim

両端の半角空白を削除する関数 左の空白のみ削除したい場合はltrim()、右の空白のみ削除したい場合はrtrim()を使う

var_dump

$array = (1,2,3,4,5);
var_dump($array);

アンカータグの値の受け渡し

  • スクリプトファイルと?で区切る
  • 複数ある場は&で区切る
    // login.php
    $_GET['login_id']    // login_idの取得
    $_GET['password']    // passwordの取得

外部ファイルを一度だけ取り込む

require_once、include_oncel
requireはインクルードファイルの読み込みに失敗すると、スクリプトの実行が中止されるエラーを発生

画像を作る

PHP文書そのものが画像の扱いとなる

<?php
 header("content-type: image/png");
 // 画像の描画領域
 $image = imagecreate(100,100);
 // 描画する色の指定
 $back = imagecolorallocate($image, 0, 0, 0);
 $red = imagecolorallocate($image, 255, 0, 0)
 // 三角形のような多角形を結ぶ線を生成
 imagepolygon( $image, array( 10, 80, 80,80, 80, 10 ), 3, $red );
 // PNG画像を Webブラウザに出力
 imagepng($image);
 // 閲覧者のメモリから画像リソースを解放する
 imagedestroy($image);
?>

現在の時刻を取得

$now = date("Y/m/d H:i:s", time());

セッション変数

// php.ini
session.use_cookies = 1
$_SESSION[セッション変数名] = 値;
//セッション変数の登録
if (!isset($_SESSION['login_id'])) {
	$_SESSION['login_id'] = $login_id;  // リソースは登録できない
}

正しいURLかどうか調べる

<?php
function is_url($text) {
 if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $text)) {
    return TRUE;
 } else {
    return FALSE;
 }
}
?> 

チェックボックス

<form action="check.php">
<input type="checkbox" name="chk[]" value="">
</form>
// check.php
// チェックボタンが押されているかチェック
if (!isset($_POST['chk'])) {
  // チェックされていない
}
$checkbox = $_REQUEST["chk"];
for($i=0; $i<count($checkbox); $i++) {
  // チェックボタンが押されいた項目だけ
}

データベース

// 接続
pg_connect("host=192.168.1.31 port=5434 dbname=LoginServer user=psp password=psp")
if ($dbHandle == False) {
	print ("can not connect DB\n");	
	die;
}
// 実行
$sql = "select * from user_info";
if (!($userinfo = pg_exec($sql)))
{
  die;
}
// レコード取得
$ct = pg_numrows($userinfo);
for ($i = 0; $i < $ct; ++$i)
{
 $item = pg_fetch_array($userinfo, $i);
 print "${item['login_id']}<br>";
}
//結果配列のフィールド番号に 対応する要素にデータを格納し、それに加えてフィールド名をキーとした 連想配列にも格納する。
// 切断
pg_close($dbHandle);

配列

$a = array('abc', 'def', 'ghi');
array_push($a, 'data1', 'data2');
foreach ($a as $tmp)
{
   print "<P>$tmp</P>\n";
}

ヒアドキュメント

先頭にキーワードを指定し、次にそのキーワードが出てくるまでの複数行の文字列を改行文字を含めて、1つの文字列として扱う

メールアドレスかどうか調べる

<?php
function is_mail($text) {
   if (preg_match('/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/',$text)) {
       return TRUE;
   } else {
       return FALSE;
   }
}
?>

配列の内部ポインタを移動する

配列の最初の要素 = reset(配列);
現在の要素の次の要素 = next(配列);
現在の要素の前の要素 = prev(配列);
配列の最後の要素 = end(配列);

フォーム

<form action="login.php">
<input type="text/password/submit" name="" value="">
</form>

複数の引数に対応する

可変長引数の関数を作成するには、仮引数を置かない。

func_num_args()  // 引数の数を取得
func_get_arg()   // 引数リストの中から1つを取得
func_get_args()  // 全引数のリストを配列として返す

メタ文字

  • ^ 文字列の先頭をあらわすが、 [ の次に来る場合や [ ] の中は除く
  • $ 文字列の末尾を表わす
  • + 1回以上の連続する文字
  • * 0回以上の連続する文字
  • ? 0回、または1回だけの文字
  • {n} n回以上の連続する文字
  • {n,m} n回から m回まで連続する文字
  • {.m} 0回から m回まで連続する文字
  • [ ] [ ]内のいずれかの1文字
  • . 任意の1文字 (ただし改行文字を除く)
  • | OR
  • () 本文を参照する文字
  • \ エスケープ文字 (この記号の後の特殊文字をそのまま出力する)
  • \n 改行文字

文字列データの連結

文字列変数を、ピリオド「 . 」、あるいはプラス「 + 」などの記号で結合する

連想配列

$fruit = array("Apple" => "りんご", "Orange" => "みかん", 
                "Grape" => "ぶどう");

最新の20件

2007-03-05 2008-07-30 2007-05-24 2007-05-09 2007-04-12 2007-03-20 2007-03-18 2007-02-20 2007-02-18 2007-02-04 2006-12-25
  • PHP
2006-09-22 2006-05-02 2005-12-09 2005-05-13 2005-04-28 2005-04-22