PHP

Hypertext Preprocessorの略。

サーバーサイドで動くスクリプト言語。
スクリプトとは、書いてそのまま実行できるプログラム。
コンパイルせずに実行できるように見える。実際はコンパイルは行っている。
javascriptはクライアント側、使用者のPC側で動く。
PHPはサーバーで処理が行われ、その結果が使用者のPCに返ってくる。


<?php
ここに処理を記述する。
?>

phpを動かすプログラム

phpはphpで書かれたテキストを動かすためのプログラムがないと動かない。
Windowsだったらphp.exeなど。UNIX系だったらphp-cgiとか。

phpを動かすためのプログラムの設定ファイルをphp.iniという。

php.ini

phpの設定を行うファイル。
・default_charset
Webサーバはレスポンスヘッダという文字列をブラウザに送信する。その内容がどの文字コードを受かっているかを設定する。
・date.timezone
phpで使用される日付や時刻の設定を行う。

http.conf

Apacheの動作を設定するファイル。
・Listen
Apacheが利用するポートを指定する。標準では80。
・DocumentRoot
公開コンテンツを設置するディレクトリ名を設定する。
ここに置いたindex.htmlやindex.phpファイルはブラウザで確認できる。
画像やスタイルシート関連も、ここで指定したディレクトリいかに配置する。
・AllowOverride
Apacheやphpの設定をディレクトリごとに変更するために必要な.htaccessの有効無効を設定できる。

.htaccess

Apacheの設定をディレクトリごとに行えるファイル。

変数,定数

変数は、先頭に$マークをつける。
$sample = 10;
$sample=”aaaa”;

phpでは変数は3つに大別される。
・スカラー型変数 論理値や整数
・複合型変数 配列やオブジェクト
・特殊な型 リソースやヌルコード


定数
define(“定数名”,”値”)で定義する。


phpでオブジェクトのプロパティやメソッドにアクセスするには->を使う。
$aaaa -> calc();
と書くと、aaaaというオブジェクトが持っているcalc()というメソッドにアクセスできる。
クラス変数にアクセスする場合は、$this -> aaaa というふうに書かなければいけない。
::という記述でも同じようなアクセスができる。
::は、staticなメソッドやプロパティにアクセスするときに使うらしい。

isset()
変数に値がセットされているかの判定を行うメソッド。引数は複数セットでき、複数の場合は全てに値が入っていた場合にtrueが返ってくる。

配列

phpの配列の作り方
$aaaa[] = “1”;
$aaaa[] = “2”;
とすると、a[0]に1、a[1]に2が入った配列が作れる。

$aaaa = array(“1″,”2”);
としても作れる。arrayメソッド。
$aaaa = expload(“,” , “1,2”);
としても作れる。第1引数で区切り文字を設定、第2引数で配列にする値を設定。

参照方法
$aaaa[0]

array_search(検索する値,対象の配列,厳密に比較するか)
配列の中から指定した値を検索するメソッド。見つかったらそのキーを返す。複数見つかった場合はそれらの先頭のキーを返す。

array_key_exists(検索する値,対象の配列)
指定したキーまたは添字が配列にあるかどうか調べる。返り値はbool。

implode(“,”,$aaaa);
と書くと、配列の中身を,で区切って全てくっつけ他ものを取得できる。第1引数を省略したら区切り文字なしでくっつける。

配列の初期化

$aaaa = array(); または

連想配列

$aaaa = array(“one” => 1 , “two” => 2);
として、キーと値を設定できる。
$aaaa[0],もしくは$aaaa[“one”]としたら取得できる。

メソッド

function メソッド名(){}
で定義する。

コンストラクタは、
__construct(){}
で定義する。

phpのオブジェクトと配列

オブジェクトのプロパティにアクセスするには、$aaa->bbbと書く。
配列にアクセスするには$aaa[“bbb”]。

echo

echo “出力したい値”;
画面に値を出力する。

echo “<b>太字で表示</b>”;
というふうに、htmlタグと組み合わせてhtml要素として出力することもできる。

echo “<script>alert(\” アラートで出したい値 \”);</script>”;
と書くことでjavascriptの記述をすることもできる。

foreach

foreach($配列名 as $変数名){ echo $変数名; }
と書くと、指定した配列の値を全て参照できる。

連想配列でキーと値を取得するには
foreach($配列名 as $変数名1 => $変数名2){}と書くと、変数名1にキー、変数名2に値が入る。

phpの演算子

.= 連結代入 左辺に右辺を連結して代入する。
xor 片方がtrue,もう片方がfalseでtrueになる。

三項演算子

return 条件式 ? 値1 : 値2 と書くと、条件式がtrueだったら値1,falseだったら値2を返す。

phpのエスケープすべき文字

‘ シングルクォーテーション
” ダブルクォーテーション
\ バックスラッシュ
t タブ記号
n 改行記号
$ ドル記号
r キャリッジリターン

エスケープは、先頭に\を付ければいい。

str_replace()

文字列置換のメソッド。
str_replace(“変更対象の文字”,”変更後の文字”,”文字列”);

strpos(大元の文字列,検索する文字列)

大元の文字列の中に、検索する文字列が何文字目に出てくるかを取得する。
見つかった位置を0から数値で返す。見つからなかったらfalseを返す。

strstr(文字列,検索したい文字列)

文字列に対象の文字が含まれているかをチェックできる。

trim(文字列、取り除く要素)

文字列から指定した文字列を取り除いたものを取得する。
第2引数を省略したら半角の空白、”\t”(水平タブ)、”\n”(ラインフィード)、”\r”(改行)、”\x0B”(垂直タブ)、null文字が省略対象になる。

rtrim(“文字列”)

文字列の末尾から空白を取り除ける。rtrim(“文字列”,”,”)と書くと、文字列の末尾から”,”を取り除ける。
第2引数を指定するとその値を取り除ける。

strip_tags

文字列からhtmlおよびphpタグを取り除く。strip_tags(“文字列”)。
第2引数にタグを指定すると、そのタグは取り除かないように変更する。

preg_replace(正規表現パターン,置換後の文字列、置換対象)

指定したパターンを指定した置換後の文字列に置き換える。

preg_match()

文字列から正規表現で指定したパターンにマッチした文字列を検索できる。
マッチしたら1,しなかったら0が返る。

繰り返し処理

while(式){} 式がtrueの間処理し続ける。
for($i =0;$i<=4;$i++){}
do{}while(式) 式に関係なくdoの処理を必ず一度行う。

参照渡し

引数に&をつけて渡すと参照渡しになる。

htmlspecialchars()

text/plainを、text/htmlに変換する。
htmlspecialchars(変換する文字列 , 変換ルール , 文字コード);
htmlの記述を、htmlとして機能しない、文字列として表示できる形式に変換する。

名前空間

namespace 名前空間名; で定義できる。
phpでは同じメソッド名を使えない。
名前空間名\メソッド名(); と書くことで重複するメソッド名を使ってもエラーにならなくなる。

useを使うと名前空間の記述を短くした別名、または同名を作れる。
別名の場合をエイリアス、同名の場合をインポートという。
use 名前空間の全て、または一部 as 別名; で定義できる。

Cookie、Session

$_COOKIE
phpの定義ずみ変数(スーパーグローバル変数)の1つ。
CookieシステムによってHTTPクッキーから渡された値の変数。連想配列として使う。
ブラウザに保存されているCookieは、$_COOKIEに自動的に格納される。

setcookie()
Cookieの送信と削除に使うメソッド。成功失敗によりboolを返す。


$_SESSION
phpの定義済み変数(スーパーグローバル変数)の1つ。
現在のセッションに登録されている値の変数。
連想配列として使用できる。

・session_id() セッションIDの取得。引数無しだと現在設定されているセッションIDを取得できる。引数を渡すと現在設定されているセクションIDを、引数で渡した文字列に置換できる。
・session_name() セッション名の取得。
・session_regenerate_id() セッションIDを再発行できる。
・session_unset() セッション変数を開放できる。
・session_destroy() 全セッションデータを破棄する。

$_GET

$_GET
do getでURLに記載されてきたリクエストパラメータが入る変数。

$_POST
do postで送られたもの。

phpのJSONの扱い

json_encode
指定した値をJSON形式に変換するメソッド。
$jsonStr = json_encode($配列名); echo $jsonStr;
と書くとJSON形式に変換した配列を表示できる。

json_decode
指定したJSON形式の値を元に戻すのに使うメソッド。

require

phpのプログラムから外部ファイルを読み込むにはrequire文やincule文を使う。
外部ファイルは共通した処理を記述した物が多い。
requireでphpの記述があるファイルを読み込んだら、そのphpが実行される。
require “ファイル名”; パスも入れて指定できる。
requireを実行した時、読み込んだファイル側でreturnで返り値を返さなかった場合は1が返ってくる。
外部ファイルが存在しない場合はFatal Errorが発生する。
requireしたあとは読み込んだファイルで定義されている変数にアクセスできたりもする。


require_once
requireと違い外部ファイルがすでに読み込まれていたらもう読み込まない。
すでに取得している変数の初期化を防いだりする。

ucfirst,lcfirst,strtoupper,strtolowwer

ucfirst() 最初の1文字を大文字にする。
lcfirst() 最初の1文字を小文字にする。
strtoupper() 文字列全体を大文字にする。
strtolowwer() 文字列全体を小文字にする。

instance of

オブジェクトが指定したクラスのインスタンスか判断する。
if($obj instance of クラス名){} というふうに書ける。

method_exists(インスタンスまたはクラス名,メソッド名);

クラスメソッドが存在するかを調べる。

array_merge(配列1,配列2,配列3)

複数の配列を1つにまとめる。同じキーがあった場合、後ろの方で上書きされる。

file_exits(ファイル名)

引数のファイルやディレクトリが存在するかをbool値で返す。

phpの定数

DIRECTORY_SEPARATOR

ディレクトリを区切る値を表す定数。OSの違いに対応できる。

__FILE__

現在のphpのファイルの名前を絶対パスで取得できる。

__DIR__

現在のphpのファイルが置かれているディレクトリ への絶対パスを取得できる。
dirname(__FILE__)でも同じ取得ができる?

__METHOD__

この定数が呼び出された場所にあるメソッド名を返す。
__FUNCTION__と違い、クラス名などを含む厳密な名前で返される。

__FUNCTION__

この定数が呼び出された場所にあるメソッド名を返す。
__METHOD__と違い、クラス名などはつかずメソッド名だけが返される。

$_SERVER

ヘッダ情報、パス情報、スクリプトの位置などの情報を取得できる。連想配列。
$_SERVER[‘PHP_SELF’] 現在実行しているスクリプトのファイル名。
$_SERVER[‘SERVER_ADDR’] 現在スクリプトが実行されているサーバーのIPアドレス情報。
$_SERVER[‘HTTP_USER_AGENT’] 現在のリクエストのUser_Agent:ヘッダの情報。

simplexml_load_string

文字列として渡されたxmlをオブジェクトに変換するメソッド。

attributes()
xmlタグの中で定義された属性とその値を取得できる。
xml文字列を解釈するのに使われるらしい。
foreach($xml->attributes() as $a=>$b){} と書くと、xml内の要素を、$aにキー、$bに値を入れて取得できる。

EOM(End Of Message)

ヒアドキュメントとかいうらしい。長い文字列を変数に使ったり出力したりするのに使う。
<<< EOM
    扱いたい文字列
EOM;
と書く。扱いたい文字列は自由に改行したりhtmlタグを入れていい。エスケープの必要はない。
echo <<< EOM
文字列
EOM;
$aaaa = <<< EOM
  文字列
EOM;
というふうに使う。

parse_ini_file

iniファイルをロードするためのメソッド。
読み込んだものを連想配列として返してくれる。

pathinfo()

引数に指定したファイルパスの情報を連想配列で取得する。

PDO

prepareメソッド
sql文をセットする。$pdo->prepare(“sql文”);
execute(array(‘:name’=>’太郎’ , ‘:age’=>20));
と書くことでsql文内の変数を設定できる。

bindValue()メソッド
これを使うことでもsql文内の変数を設定できる。
bindValue(パラメータID,バインドする値,バインドする型); 第3引数は省略できる。

PDOで同じクエリに同じ変数が入る場合、1回のbindValueなどで指定するだけではだめ。
また、指定したパラメータ以外の変数をバインドするとエラーになる。

rowurlencode()

URLエンコードするための関数。URLエンコードとは、URLとして使用できない文字や記号を使用できる文字に変換すること。

copy()

ファイルをコピーするメソッド。copy(コピー元ファイル名,コピー後ファイル名);

Composer

phpのライブラリ管理ツール。あるライブラリを利用するために別のライブラリが必要な場合があるらしい。それをライブラリが別のライブラリに依存しているという。
依存関係にあるライブラリをまとめてインストールする機能をComposerは持っている。

PHPWord

phpでwordファイルを作ったりできるライブラリ。
・addSection()
docsにデータを書き出す場所の定義をセクションという?wordで表示される全ての要素はセクション内に配置されるらしい。新しいセクションを作るメソッドがaddSection()。
$section = $phpword-> addSection()
・addText()
セクションにテキストを書き込むメソッド。$section->addText(“書き込むテキスト”)と書く。
第2引数でフォントを指定できる。
・addTextRun()
太字、斜体などのスタイルを変えたテキスト、もしくは画像やリンクなどを書き込めるメソッド。
・addTextBreak()
テキストを区切る。つまり改行する?
$section->addTextBreak(breakCount,fontStyle,paragraphstyle)
breakCount:行数、fontStyle:フォント、paragraphStyle:段落
・addPageBreak()
改ページ。$section->addPageBreak()

phpでエラーログを出す

error_log(“文字列”,3,”./test.txt”);3はファイルに出力するという意味らしい。
./test.txtは、メソッドが呼ばれたクラスと同じ場所にtext.txtというファイルにログを書き出すことを指す。最初の文字列が書き出す内容。フォルダのパーミッションを書き込みができるよう変更しなきゃログが出なかった。

タイトルとURLをコピーしました