PHPプログラムは基本、hogehoge.phpと言った具合で、.phpの拡張子のついたファイル上で動かしますが、index.htmlのようなHTMLファイル上で、PHPを動かしたい時って、よくありますよね。
そんな時は、.htaccessファイルを同ディレクトリに置いて、
1 |
AddType application/x-httpd-php .html |
と記述すれば動いたのですが、最近の新しいPHPだと、
1 |
Your server is running PHP version 5.6.40 but WordPress 6.4.3 requires at least 7.0.0. |
といった具合で、エラーが出てしまいました。
HTMLファイル上でPHPが動かない
この対処法は、今回利用しているサーバーはCORESERVERならば、.htaccessへの記述を、
1 |
AddHandler application/x-httpd-php74cgi .html |
と、利用しているサーバーのPHPのバージョンに合わせた記述をすればOKです。PHP7.4ならx-httpd-php74cgi、PHP8.3ならx-httpd-php83cgiなどです。他のサーバーでも対処法を用意されているはずなので、各サーバーのFAQやヘルプを調べてみてください。
HTMLファイル上でPHPを動かしたら文字化けした
PHPが動いた!しかし…、様子が変です。今度は文字化けしてしまいました。
HTMLファイルの文字コードは、最近はUTF-8にすることが多いですが、中には未だにSHIFT-JISで作られているものもあります。
SHIFT-JIS形式のHTMLファイル上でもPHPは動くのですが、最近のPHPはデフォルトの文字コードがUTF-8で指定されているため、上記記述を.htaccessにしても、UTF-8として認識してしまうため、文字化けしてしまうのです。
これまではどうだっかというと、PHPのデフォルトの文字コードが指定されてませんでした。よって、今度は.user.iniファイルを同ディレクトリに置いて、
1 |
default_charset = "" |
と記述すれば、デフォルトの文字コードが””と空となり、文字コードが指定なしとなるため、SHIFT-JISでも文字化けせず動くようになります。
困っている方は、お試しください!
コメント