MENU

PHPのバージョン別セキュリティ情報

PHPバージョンごとに文法構造が結構変わっているので注意が必要です。

サポート期間など

PHPバージョン別セキュリティサポート期間

バージョン初回リリース日最終リリースバージョン最終リリース日サポート終了日
8.22022/12/082025/12/08
8.12021/11/252024/11/25
8.02020/11/262023/11/26
7.42019/11/287.4.332022/11/032022/11/28
7.32018/12/067.3.332021/11/182021/12/06
7.22017/11/307.2.342020/10/012020/11/30 
7.12016/12/017.1.332019/10/242019/12/01
7.02015/12/037.0.332018/12/062018/12/03
5.62014/08/285.6.402019/01/102018/12/31

WordPressと対応PHPバージョン

バージョン動作環境(PHPバージョン)推奨バージョン
6.48.1 – 8.2
6.37.0 – 8.27.4以上
5.9 – 6.25.6.2 – 8.27.4以上
5.7 – 5.85.6.2 – 8.07.4以上
5.65.6.2 – 8.07.4以上
5.55.6.2 – 7.47.4以上

WordPressテーマ別

テーマテーマバージョン対応環境
Swell2.8WordPress6.4
JIN2.750WordPress6.2
Sango3.7WordPress6.3

2023年10月現在、Swellの場合PHP8.1に上げても動くようです。

目次

PHP7

HTMLタグエスケープ

以下はPHP8+MySQL入門ノート(ソーテック社/大重美幸著)が元ネタなのですがChatGPT4のAdvanced Data Analysisに書いてもらったソースコードになります。

function es($data, $charset = 'UTF-8') {
    if (is_array($data)) {
        return array_map('es', $data);
    } else {
        return htmlspecialchars($data, ENT_QUOTES, $charset);
    }
}

2023年11月現在では多くのWordpressテーマではPHP8ではまだ動かないことが多いのでこちらの方がまだ役立つかも知れません。

WordPressサブテーマのfunctions.phpからそれ以下にlibディレクトリを作り、その下にutil.phpを置くような場合はutil.phpには最初の行に<?phpをつけ、functions.phpに以下を追記します。


require_once(get_stylesheet_directory() . '/lib/util.php');

PHP8

HTMLタグエスケープ

以下はPHP8+MySQL入門ノート(ソーテック社/大重美幸著)が元ネタなのですがChatGPT4のAdvanced Data Analysisに書いてもらったソースコードになります。

function es(array|string|null $data, string $charset = 'UTF-8') {
    if ($data === null) {
        // nullの場合の処理をここに記述
        return null; // または適切なデフォルト値を返す
    } elseif (is_array($data)) {
        return array_map(__METHOD__, $data);
    } else {
        return htmlspecialchars($data, ENT_QUOTES, $charset);
    }
}

PHP 8.1では、関数の引数の型指定が厳格になりデータがない場合の処理を別に行わないとエラーになってしまうようです。上記は実際に運用させてみて動作確認済みのものになります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
Subscribe
Notify of
guest

CAPTCHA


0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
目次