ブログ用タグ: PHP

  • ディレクトリごとにPHPのバージョンを変える

    LOTD(今日のリスト)の配信にはXserverのメーリングリスト機能を使っている。しかしこの機能はPHP5~7にしか対応していない。一方でWordPress本体はPHP8をサポートし始めている。

    LOTDのためにWordPressのPHPバージョンが制約を受けることがないよう、XserverのメーリングリストだけをPHP7で走らせられないかを調べた。

    Xserverのメーリングリスト機能は xmailinglist というディレクトリに収められたファイル群として提供されている。よって https://listfreak.com/xmailinglist/ 下のPHPだけをPHP7で起動すればOKそう。

    xmailinglist ディレクトリ以下の .php ファイルだけを異なるバージョンのPHPで走らせるために、以下のような内容の .htaccess を置く。

    AddHandler php-xmailinglist .php
    Action php-xmailinglist /xmailinglist/php.fcgi

    1行目で .php ファイルを扱うハンドラー(ラベル名のようなもの)を追加し、2行目でそのハンドラーが実行すべきファイルを指定する。

    ここで /xmailinglist/php.fcgi は以下のような内容のシェルスクリプトである。

    #!/bin/sh
    exec /usr/bin/php-fcgi7.4

    PHPのファイルパスは Xserver の「プログラム言語・コマンドパス」というページに書かれている。

  • ブロックコメントを1文字でON/OFFする

    複数行のコードをコメントアウトしたり戻したりするために、こんな工夫をしています。

    /* */
        echo 'ブロックの前後に /* */ を置いておく。';
    /* */
    /* * /
        echo 'で、最初のブロックの * と / の間にスペースを入れるか、';
    /* */
    
    /* *
        echo '/を削ればブロックコメントになる。';
    /* */

    1文字でブロックコメントをON/OFFできるのでわれながら良い方法だと思っていたのですが、下記のようなやり方もあることを知りました。

    php – Quickly turning on/off block comments – Stack Overflow

    //*
        echo 'ブロックの前後にこんな行を置いておく。';
    //*/
    /*
        echo 'で、最初の行の/を一つ取ればブロックコメントになる。';
    //*/

    ふむ。こちらもいいですね。でも自分のやり方に慣れてしまったせいか、 //*/ が直感的に「何?」となりそう。なのでマイウェイでいいかな。

    あと、敢えていえば最初のやり方は CSS でも使えます。