PHPのメモ


変数

$list = array(1, 2, 3);	//初期設定
$list[0] = 'orange';	//添え字で指定
$list[] = 'orange';	//追加
$list = array();	//空配列の宣言
$list = array('orange' => 'みかん', 'apple' => 'りんご');	//連想配列の宣言
$wk = $list['orange'];	//連想配列を取り出す
isset($wk) == true	//定義済みか
is_array($list) == true	//配列かどうか
$wk = count($list)	//配列の数
unset($wk);	//破棄
$GLOBALS['SERVER_ID']	//直接グローバル変数を見る



定数

const DB_NAME = "db";

環境

require_once('/common.php');
date_default_timezone_set('Asia/Tokyo');
header("Content-type: text/html; charset=UTF-8");	//ヘッダー出力

日時

$wk = date("Y/m/d H:i:s");
$wk = date("Y/m/d H:i:s", $unix_time);	//シリアルから変換
$wk = strtotime('-1 day')
$wk = strtotime('2000-12-31')
$wk = time();	//現在のシリアルタイム(UNIX秒)
$wk = mktime($hour, $min, $sec, $month, $mday, $year);	//シリアルを生成
$wk = strtotime("2000/12/31 12:34:56");	//シリアルを生成
$wk = date_diff(new DateTime($start), new DateTime($end))->format('%H:%I:%S');	//時間差

文字列

$wk = substr($str, 5, 10);	//5文字目から10文字取り出す、取り出す文字数の指定がない場合は後ろ全部
$wk = mb_substr($str, 10, 5);	//10文字目から5文字取り出す
$wk = mb_substr($str, 10, 5, "UTF-8");	//UTF-8として10文字目から5文字取り出す。またはmb_internal_encodingで指定する
$wk = trim($str);	//前後の空白を取り除く
$wk = strpos($str, ':', 10);	//10文字目以降の:のある場所を探す
$wk = strstr($str, '@');	//@以降の文字列を取り出す
$wk = str_replace('@', '-', $str);	//@を-に置換する
$list = explode(":", $str);	//:で分割して配列にする
$wk = implode(",", $list);	//,で連結して文字列にする
$wk = strlen($str);	//文字列の長さ
$wk = sprintf("%04d", $i);	//ゼロ詰め

数値

$wk = intval($str);	//数値に変換
$wk = intval($str,16);	//16進数として変換
$wk = random_int(1, 100)	//1から100の乱数、PHP7以降

ファイル

$fp = fopen("data.txt", "r");
while (!feof($fp)) {
    $lines[] = fgets($fp);	//1行ずつ読み込み
}
fclose($fp);
foreach($lines as $line){
    echo $line . '
'; } $json = file_get_contents('data.json'); $data = json_decode($json, true); $fp = fopen("data.txt", "w"); fwrite($fp, "abcde"); fclose($fp);

その他

sleep(1);	//1秒待つ
usleep(1000000);	//1秒待つ//JSON形式
echo json_encode([
    "status" => True,
    "result" => 'Finished.'
]);
//値が入っているか
if(isset($input_data['id']){
}
filter_input(INPUT_POST, 'btn');	//セキュリティ対策



繰り返し

for($i=0; $i<10; $i++){
}
foreach ($list as $key => $value) {	//連想配列ではなく普通の配列の場合はkeyに添え字の番号が入る
	break;	//ループを抜ける
}
foreach ($list as $value) {	//keyが不要な場合
	continue;	//次のループへ
}

エラー処理

try{
} catch(Exception $ex){
	throw $ex;
} finally {
}

関数

public function hogehoge($id, &$str) {	//&で参照渡し
global $id;
}

セッション

session_start();//開始
$wk = session_id();	//セッションID
session_destory();//終了
unset($_SESSION['USERDATA']); //部分クリア
$_SESSION = [];// 情報全クリア

クッキー

setcookie("test", $value, time()+3600);
setcookie("test", "", time()-3600);	//過去日付をセットすると消える
echo $_COOKIE["test"];

データベース

//DBに接続
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($link==false){
	die('DB接続失敗');
}else{
	//echo '接続OK';
}
//SELECT
$sql='select * from staff where shopcode=123';
$result = mysqli_query($link, $sql);
while ($row = mysqli_fetch_assoc($result)) {
	$staff_data[$row["staffid"]] = $row;
}
//UPDATE INSERT DELETE
$result = mysqli_query($link, $sql);
if($result == true and mysqli_affected_rows($link)>0){
	//更新に成功
}elseif(mysqli_errno($link)==0){
	//更新に失敗
}else{
	//更新に失敗
}

クラスの使い方

実行結果








桜の扉