min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

拡張子htmlファイル内にphpコードを書いて動作させる

拡張子がhtmlのファイルの中にphpコードを書いて動作させたい。

f:id:min117:20181205063450p:plain

 

できた。httpd.conf の <IfModule mime_moduleの記述追加すればいける。ソース.html は末尾。

 

参考になった記事。

qiita.com

 

<やり方>

$ sudo -s

$ vim /etc/httpd/conf/httpd.conf

f:id:min117:20181205062820p:plain

以下を追記する。

<IfModule mime_module>
   AddType application/x-httpd-php .html
</IfModule>

f:id:min117:20181205062910p:plain

追記)RaspberryPiの場合はこちら

nnsnodnb.hatenablog.jp

f:id:min117:20190101105728p:plain

 

設定反映させるためにhttpdを再起動する。

# systemctl restart httpd.service

f:id:min117:20181205064604p:plain

 

動かしてみる。ICONTXT.pngという画像があるフォルダに phpline.html を置いてブラウザから開いてみる。

f:id:min117:20181205064530p:plain

 

うまく動いた。
f:id:min117:20181205062955p:plain

「phpline」は(末尾のソースの9行目の)phpの中で出ているから、これが見えていればphpコードが動いているということだ。

 

 

 

複数の画像を入れて試してみる。
f:id:min117:20181205063400p:plain

バッチリ動いた。

 

 

ソース(画像版)

f:id:min117:20181205065042p:plain

f:id:min117:20181205065102p:plain


ソース(テキスト版)

$ vim phpline.html

<!DOCTYPE html>

<html lang="ja">

<head>

        <meta charset="utf-8">

</head>

<body>

<p>test</p>

<?php

        print '<p>php line</p>';

 

    //エラーをhtml上に吐く

    ini_set( 'display_errors', 1);

    //記述上のエンコードを指定

//    mb_internal_encoding("UTF-8");

    //表示上のエンコード指定header

    header("Content-Type: text/html; charset=UTF-8");

// /// システム情報 ///

    $DATE = date("Ymd_His");

    // echo "アクセス日時:$DATE";

 

    $user_ip   = $_SERVER["REMOTE_ADDR"];

    //echo "<p>アクセス者:$user_ip</p>";

    $firstoctet = substr("$user_ip", 0, 3);

    //echo "第1オクテット:$firstoctet </p>";

 

    define('SCRIPT_DIR', dirname($_SERVER['SCRIPT_FILENAME']));

    define('IMAGES_DIR', SCRIPT_DIR);

    //print 'IMAGES_DIR:' . IMAGES_DIR . '<br>';

    $my_files = array();

    $imageDir  = opendir(IMAGES_DIR);

 

    while ($file = readdir($imageDir)) {

        if ($file == '.' || $file == '..'){

            continue;

        }

        // Mac _.IMG1234.JPG を読み飛ばす

        if (preg_match('/^._.*/', "$file")) {

            continue;

        }

        if (is_dir($file)){

            //echo "$file" . "_is dir<br>";

            continue;

        }

 

        // 拡張子を取得

        $info = new SplFileInfo($file);

        $ext = $info->getExtension();

        //echo "<p>$ext</p>";

 

            // 拡張子がmp4でなければ読み飛ばす

        if ($ext != 'jpg' &&

            $ext != 'JPG' &&

            $ext != 'png' &&

            $ext != 'PNG' &&

            $ext != 'gif' &&

            $ext != 'GIF'

            ){

            continue;

        }

 

        $files[] = $file;

    }

 

    foreach ($files as $i) {

        echo "<a href=\"$i\"><img src=\"$i\" alt=\"$i\" width=\"200\"></a>";

        //echo "<br>";

        print ' ';

    }

 

    echo '<br><br>';

    echo "アクセス日時:$DATE";

    echo "<p>アクセス者:$user_ip</p>";

    echo "第1オクテット:$firstoctet </p>";

    print 'IMAGES_DIR:' . IMAGES_DIR . '<br>';

 

    print '<p>php line 2</p>';

 

?>

 

 

 

</body>

</html>