[PHP] 個人的 逆引き関数リファレンス
トップページへ
※逆引き、つまり「したいこと」から関数を探す一覧でリンク先はなるべく公式ですが、見つからない場合は諸先輩方のサイトです
※リンクの「記事」は当サイトの別記事です
変数の破棄→unset()
実行遅延、待ち時間→sleep()
HTML からの脱出・公式からの引用
<?php if ($expression == true): ?>
条件式が真の場合にこれが表示されます。
<?php else: ?>
それ以外の場合にこちらが表示されます。
<?php endif; ?>
別サンプル WordPress
<?php $previous_post = get_previous_post();
if (!empty( $previous_post )): ?>
<a href=”<?php echo get_permalink( $previous_post->ID ); ?>”><?php echo $previous_post->post_title; ?></a>
<?php endif; ?>
文字列の中で文字を探して
最初に見つかる→strpos()、大小の区別をしないstripos()
マルイバイト(日本語が主体)ならmb_strpos()
最後に見つかる→strrpos()
大小の区別をしないstrripos() eg.Scarlet,scarlet のどちらも対象
文字列から文字を抜き出したい→substr()、マルチバイト(日本語が主体)ならmb_substr()
eg. 右から2文字
$rest = substr(“abcdef”, -2); // “ef” を返す
文字列の置換→str_replace()
位置指定による置換→substr_replace()
eg. ABCDEFGH:/MNRPQR/ から’MNRPQR を削除します
substr_replace(‘ABCDEFGH:/MNRPQR/’, ”, 10, -1)
位置10から「最終位置から-1」した部分、「MNRPQR」を除去
(offset指定なので、Aなら0, Mなら10)
結果 ABCDEFGH://
文字列を数字に変換→intval()
数字を文字列に変換→strval()
サンプル
$w_p_title = $p_title. ‘ – ‘ .strval($img_no);
++$img_no;
数字かどうか→is_numeric()
変数が存在するかどうか→isset()
eg. 警告「PHP(楽天市場で探す ・ amazonで探す) Warning: Undefined array key」で回避できる場合がある
HTMLタグの除去→strip_tags
文字列をそのまま出力→echo
文字列のフォーマットが可能で出力もする→printf()
eg. vsprintfのサンプルですが、月や日が1桁の時にゼロをつけたい場合
print vsprintf(“%04d-%02d-%02d”, explode(‘-‘, ‘1988-8-1’));
1988-08-01
eg.私のサンプル
printf(‘<option value=”%04d”>%04d年(令和%d年)</option>’, 2024, 2024, (2024 -2018));
千の位ごとに , (カンマ)を出力→number_format
*引用「小数の桁を追加する場合、四捨五入のルールを使います。」
数字の右詰めとゼロ埋めなどのフォーマットが可能。ただし表示にはechoが必要→sprintf()
サンプル
$format = ‘%3d’;
sprintf($format , $w_cnt);
例
99 *記事では右詰めではありませんが、実行すると下1桁がそろった右詰めです
100
さらにゼロ埋め
$format = ‘%03d’;
sprintf($format , $w_cnt);
例
099
100
※個人的:sprintfで、フォーマット文字の数と、渡す変数の数が一致していない場合、「空の文字列」になる可能性あり
文字列を区切り文字で分割→explode()
サンプル
例 $buffer内が「href="https://www.google.co.jp」の時 $line = explode('="', $buffer); $line[0]には「href $line[1]には「https://www.google.co.jp」
文字長(文字列の長さ)を調べる→strlen()
マルチバイト→mb_strlen()
カレントディクレトリの変更→chdir()の例
※ローカルで実行する場合はフルパスの方が良い。
ファイルやディレクトリが存在するかどうか→file_exists
指定したファイルがディレクトリかどうか→is_dir
ファイルが読み込み可能かどうか→is_readable
(対象ファイルのパーミッションが600の場合、読み込み不可という判定になりました)
ファイル名、パス名だけを取得→pathinfo
空かどうか→empty()
変数 $work が空でないなら→ if ( !empty( $work ) ) {
変数がbooleanか?→is_bool()
ファイルサイズ→filesize
例文 12000バイト未満は
if ( filesize( $fname ) < 12000 ){
ファイルの日付→filemtime
例文 一年より前のファイルは
if ( date( filemtime($fname) ) < strtotime(“-1 year”) ){
Q. 「If ( $w_pos != false ) {」が正しく判定されない
次の繰り返しへ→continue
例 continue 2; という使い方もある
ループを抜ける→break
処理を飛ばす→goto
(関数など)処理を呼び出し元へ戻す。実行中の場合はreturn後すぐに停止される→return
ファイルの終端か?→SplFileObject::eof
括弧 {} 公式のやや中央
なお和差積商は + , – , * , / を使う。
整数値の除算, 割り算の答えを整数で返す→intdiv
たとえば、変数 i が 3の倍数の時だけ処理Aをしたい
if ( $i % 3 == 0 ){ 処理A }
小数を丸める(≒四捨五入)→round
eg.百分率を求めたい。割り算をして100倍にし、小数点以下を3桁にする場合
round( 269 / 147101 * 100, 3)
(269 ÷ 147101 x 100 =0.18286… → roundで 0.183)
端数の切り捨て→floor
特殊文字を変換(&→&、<→<など)したい、フォームで入力した文字列が正しく認識されない場合→htmlspecialchars
例 $wk_no = htmlspecialchars($_POST['entry_no'], ENT_QUOTES, 'UTF-8');
エラーの出力 error_reporting
ファイルのタイムスタンプの取得や更新(書き込み)
//作成日時(ファイルの inode 変更時刻を取得)
$w_ctime = filectime( $filename );
//ファイルの更新日時(ファイルの更新時刻を取得)
$w_mtime = filemtime( $filename );
//ファイルスタンプの書き込み(ファイルの最終アクセス時刻および最終更新日をセットする)
touch($new_name, $w_mtime);
class(クラス)
__() 翻訳関数
例 __( ‘Continue reading’ )
cURL関数
CURLOPT_POSTFIELDS は、 オブジェクトを配列として受け入れなくなりました。 オブジェクトを配列として解釈させるためには、 明示的に (array) キャストを行って下さい。 配列を受け入れる他のオプションにも、同じことが当てはまります
→PHPメニューへ戻る