IT業界の技術をメモ・情報公開できる
PHPのスーパーグローバル変数
$_GET URLパラメータ(クエリ文字列)から送られるデータを取得します。 $_POST POSTメソッドで送信されたデータを取得します。 $_REQUEST $_GET、$_POST、および$_COOKIEを統合した配列。 $_SERVER サーバーや実行環境に関する情報を提供します。 $_FILES アップロードされたファイルに関する情報を取得します。 $_ENV 環境変数の値を取得します。 $_COOKIE クライアントのクッキーに保存されたデータを取得します。 $_SESSION セッションデータを保存します。 $_GL
セキュリティ対応
・セキュリティヘッダ "HTTP Strict Transport Security (HSTS)" の設定 HSTSは、サイトがHTTPではなくHTTPSでしかアクセスできないようにブラウザに強制するヘッダーです。 ・セキュリティヘッダ "X-Frame-Options" の設定 外部サイトからフレーム呼び出しできないようにする ・X-Content-Type-Options: nosniff の設定 ブラウザが MIMEタイプを推測せず、サーバーから送信された Content-Type ヘッダーに厳密に従います。 ・バージョン情報の(x-powered-by)削除
$_SERVERの要素
$_SERVER['PHP_SELF'] 現在のスクリプトのパスを返します。例えば、/index.phpのように返されます。 $_SERVER['SERVER_NAME'] サーバーのホスト名を返します(例: example.com)。 $_SERVER['HTTP_HOST'] 現在のリクエストのホストヘッダーを返します。通常はSERVER_NAMEと同様です。 $_SERVER['HTTP_USER_AGENT'] ユーザーのブラウザ情報(User Agent)を返します。 $_SERVER['SERVER_ADDR'] サーバーのIPアドレスを返します。
PHPでカレンダー
PHPでカレンダーを作成
PHPの文字列置換
str_replace( $検索文字列 , $置換後文字列 , $検索対象文字列 [, int $count ] ) 第一引数に検索文字列を指定 第二引数に置換文字列を指定 第三引数には検索対象の文字列を指定 第四引数には文字列が一致して置換が行われた箇所の個数が格納(無くてもよい) $test = 'こんにちは,World'; //指定した文字列が一致したら置き換える $re_test = str_replace('こんにちは', 'Hello', $test); 結果 Hello,World
PHPのファイル読み込み/書き込み
fopen($filename, $mode) ファイルを開き、モードに応じて読み込み、書き込みなどを行う準備をする。 $mode の例: "r": 読み込み専用 "w": 書き込み専用 (ファイルが存在しない場合は新規作成、存在する場合は上書き) "a": 書き込み専用 (ファイルが存在する場合、追記する) "r+": 読み書き両用 (読み込み後に書き込み可能) "w+": 読み書き両用 (既存ファイルは削除され、新規作成) "a+": 読み書き両用 (末尾に追記する) fread($handle, $length) 開かれたファイルから指定されたバイト数だけデータを
配列のキーと値を反転する
array_flip(配列) 配列のキーと値を反転させた配列が返される 元々キーだったものが値に 元々値だったものがキーに ある値が複数回出現した場合、最後のキーがその値として使用され、その他の値は失われます。
PHP演算子の優先順位
PHPの演算子の優先順位
PHPの文字列から数値変換
<intキャスト (int)> 文字列が非数値の場合は整数「0」に変換される 例 $string = "123"; $number = (int)$string; echo $number; // 123 <intval関数 intval(文字列)> 文字列が非数値の場合は整数「0」に変換される 例 $string = "123"; $number = intval($string); echo $number; // 123 第2引数に基数を設定することで基数の値に変換される 例 $string = "10"; $number = int
文字列の長さを取得
strlen関数 strlen(文字列) 「バイト数」での取得 半角1文字で1バイト、全角1文字で2バイト mb_strlen関数 mb_strlen(文字列) 「文字数」での取得 半角1文字も全角1文字も1文字 例 strlen('abcあいう') = 9 mb_strlen('abcあいう') = 6
php 置換 strtr($str, $array); 文字列長い順
$str = '東京都新宿区新宿3丁目'; $array = [ '新宿' => '<b>新宿</b>', '新宿区' => '<span>新宿区</span>', ]; echo strtr($str, $array); // '東京都<span>新宿区</span><b>新宿</b>3丁目'
php 機種依存文字変換対応
<?php // 機種依存文字と置換後の文字を対応させる配列 $dependency_chars = array( '㈱' => '(株)', '㈲' => '(有)', '㈹' => '(代)', '㊤' => '(上)', '㊥' => '(中)', '㊦' => '(下)', '㊧' => '(左)', '㊨' => '(右)', '㍾' => '明治', '㍽' => '大正', '㍼' => '昭和', '㍻' => '平成', '№' => 'No.
配列の指定した範囲を取り出す
配列にある一部の要素を取得 array_slice(要素を取り出す元となる配列, 開始する位置, 取り出す要素の数); 要素を取り出した後に、もし元の配列からは削除したい場合 array_splice(要素を取り出す元となる配列, 開始する位置, 取り出す要素の数, null);
配列の値の数を数える
array のキーとその登場回数を組み合わせた連想配列を返します。 array_count_values(検査したい配列) $str = ["a", "d", "d", "r", "e", "s", "s"]; $array = array_count_values($str); array(5) { ["a"] => int(1) ["d"] => int(2) ["r"] => int(1) ["e"] => int(1) ["s"] => int(2) }
$_FILES(ファイルアップロード変数)
HTTP POST でアップロードされた値を取得するファイルアップロード変数 サーバーへファイルをアップロードするには、 ・HTMLのformタグのmethod属性をPOSTにする ・HTMLのformタグのenctype属性をmultipart/form-dataにする ・HTMLのinputタグのtype属性をfile にする $_FILESには、アップロードされたファイルの $_FILES['inputで指定したname']['name']:ファイル名 $_FILES['inputで指定したname']['type']:ファイルのMIMEタイプ $_FILES['
【PHP】特定の文字列を含むか確認する方法
strpos(文字列,検索したい文字列) 文字列内の部分文字列が最初に現れる場所を見つける関数。 文字列が見つかればint型で位置が、無ければfalseが返されます。 <-- 例 --> $str = 'I like apples.'; if (false !== strpos($str, 'apple')) { // $strにappleが含まれる場合 } if (false === strpos($str, 'apple')) { // $strにappleを含まない場合 } strstr(文字列,検索したい文字列) 文字列
PHP 配列で使える関数
<-- array_push(配列, 挿入する値) --> 1つから複数の値を挿入することができる(1つの時は非推奨) 例 $list = []; $list[] = "a"; $list[] = "b"; array_push($list, "c"); Array ( [0] => a [1] => b [2] => c ) <-- is_array(配列) --> 配列であればtrueそれ以外はfalseを返す ※空配列の場合でもtrueを返す <-- in_array(特定の値, 配列) --> 第一引数に指定した
日付のフォーマット
Y:年(西暦の4桁) 例)2024 y:年(西暦の下2桁) 例)24 m:月(2桁の月) 例)08 n:月(1桁で先頭に0を付けいない) 例)8 d:日(2桁の日付) 例)21 H:時間(2桁の24時間単位) 例)16 h:時間(2桁の12時間単位) 例)08 i:分(2桁の分) 例)20 s:秒(2桁の秒) 例)30 t:指定した月の日数(28~31) 例)31 w:曜日(0:日 ~ 6:土) 例)2(火) l:曜日(Sunday〜Saturday) 例 date('Y年m月d日 H時i分s秒')
PHP エラー表示
エラーを表示する ini_set('display_errors', 1); ini_set('display_errors', "ON"); エラーを表示しない ini_set('display_errors', 0); ini_set('display_errors', "OFF");
ワードプレス 管理画面メニューカスタマイズ
https://www.sejuku.net/blog/69541 https://wp-doctor.jp/blog/2020/05/14/%E3%83%AF%E3%83%BC%E3%83%89%E3%83%97%E3%83%AC%E3%82%B9%E3%81%AE%E7%AE%A1%E7%90%86%E7%94%BB%E9%9D%A2%E3%81%AE%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%AE%E9%A0%86%E7%95%AA%E3%82%92%E5%85%A5%E3%82%8C/ functions.phpにコードを記載
PHP 文字切り出し 特定文字以降削除
$title = "これはテストです|ここから削除される文章"; $title = mb_substr( $title , 0 , mb_strpos($title, "|") ); echo $title; //出力結果:これはテストです https://blue-bear.jp/kb/php-%E7%89%B9%E5%AE%9A%E3%81%AE%E6%96%87%E5%AD%97%E4%BB%A5%E9%99%8D%E3%81%AE%E6%96%87%E5%AD%97%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E6%96%B9%E
SSH アクセスログ確認
IP毎に件数順 grep -Eo "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" ssl_access_log | sort | uniq -c | sort -r | head -n 15 ファイル出力 >> access_log-result https://humo-life.net/memo/doku.php?id=%E3%82%B5%E3%83%BC%E3%83%90:linux:%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89:%E3%82%A2%E3%82%AF%E3%82%BB%E3%
日付
date php date('Y/m/d', strtotime('+7 day')); strtotime 2038年問題 利用しているOSが64ビットで、「PHP」自体が 64bit ビルドにすることで回避 DateTime型を使う #### 年 (Year) - **`Y`**: 4桁の西暦年 (例: 2024) - **`y`**: 2桁の西暦年 (例: 24) #### 月 (Month) - **`m`**: 2桁の月 (例: 09) - **`n`**: 先行するゼロなしの月 (例: 9) - **`M`**: 英語の省略された月名 (