min117の日記

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

PHP 引数にとったテキストファイルの内容を表示する doSHOWTXTGREP.php?TARGET_TEXT=temp.txt

サーバにあるログファイル.txtの内容をiPhoneで確認したい。

doSHOWTXTGREP.phpを作る。引数にとったテキストファイルの内容を画面に表示してくれる。

 

使い方はこんな感じ。

http://myserver.com/doSHOWTXTGREP.php?TARGET_TEXT=temp.txt

 

結果こうなる。

f:id:min117:20200812080111p:plain

TARGET_TEXT=temp.txt UTF-8だろうがShift-JISだろうが全く問題なく表示してくれる。引数テキストを変えてやればいくらでも(サーバにある)ファイルを読み込める。メッチャ便利。

 

ソースはこれ。

$ vim doSHOWTXTGREP.php

f:id:min117:20200812080540p:plain

f:id:min117:20200812080644p:plain

 89行目 foreachで各行を読み込む

 90行目 各行に「title」や「start_time」の文字列が入っていたら

 92行目 黄色くマーキングする

条件によってはいろいろなマーキングができる。

 

次回はこのdoSHOWTXTGREP.php(引数ファイルを表示するPHP)を画面から呼び出す別のPHP(一覧機能)を実装する。

コピペ用

<div style="z-index: 1500; position: fixed; top: 0px; right: 0px;">

<fieldset>

<?php

//参考ソース

//VLC Extensionsからサーバのrecpt1を起動、停止させる ref:

//https://gist.github.com/mkit0031/c72f54adf69bc2bc8379

 

//エラーをhtml上に吐く

ini_set( 'display_errors', 1);

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

mb_internal_encoding("UTF-8");

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

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

 

// 後で呼ぶ関数の中で使う変数を定義

$DATE = date("Ymd_His");

print 'アクセス日時:' . $DATE;

 

// サーバIPアドレス把握

$srv_ip    = $_SERVER["SERVER_ADDR"];

$srv_octet = substr("$srv_ip", 10, 2);

print "<p>サーバIPアドレス$srv_ip<br>";

print "<b><font color=\"red\">サーバIP の末尾:$srv_octet</font></b></p>";

 

// クライアントIPアドレス把握

$user_ip   = $_SERVER["REMOTE_ADDR"];

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

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

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

// jecho "PHPファイル名:" . basename(__FILE__, ".php"); 

echo '<mark>' . basename(__FILE__, ".php") . '</mark>';

 

// galmov03 bootstrap

// echo basename($_SERVER['PHP_SELF']); 

// print basename(__FILE__, ".php"); 

 

 

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

define('IMAGES_DIR', SCRIPT_DIR . '/thumb_movie_images');

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

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

?>

</fieldset>

</div> 

        

<?php   

/// //// hostname を取得

/// // exec("sudo hostname" , $myhost);

/// $myhost = shell_exec('hostname');

/// // POSTされたチャンネル取得(なければ48にする)

/// $myCHNL = '48';

/// $myCHNL = $_GET['TEXT'];

/// // 実行環境を表示

/// print '実行サーバ:' . "$myhost";

/// print '<br>';

 

// $myTARGETではなくTEXTにする(curlで呼び出されるから)

// $myTEXT 対象動画名をセット

if(isset($_GET['TARGET_TEXT'])){

    $myTEXT = $_GET['TARGET_TEXT'];

} else {

    $myTEXT = "myTEXT_NOSET";

}

// YELLOWではない

print '<b><mark>$myTEXT:' . "$myTEXT" . '</mark></b>';

// shellのcat結果をphpに食わせると

// 表示が遅すぎて実用的でない 20200809 ← いやそんなことないcat が一番速い

// $commandCAT = 'pwd && cat ' . "$myTEXT" . ' 2>&1 &';

// $commandCAT = 'pwd && cat ' . "$myTEXT" . ' > /dev/null 2>&1 &';

// $commandCAT = 'pwd && cat ' . "$myTEXT" . ' | grep title 2>&1 &';

// cat *JIMAKU.txt | egrep 'time|title|--------------------------------------------------------------------------------'

// $commandCAT = 'pwd && cat ' . "$myTEXT" . ' | egrep \'time|title|--------------------------------------------------------------------------------\'' . ' 2>&1 &';

// $commandCAT = 'pwd && cat ' . "$myTEXT" . ' | egrep \'time|title|--------------------------------------------------------------------------------\'' . ' 2>&1 &';

// $commandCAT = 'pwd && cat ' . "$myTEXT" . ' | egrep \'time|title|--------------------------------------------------------------------------------\'' . ' | tail -n 3000 2>&1 &';

// $commandCAT = 'pwd && cat ' . "$myTEXT" . ' | tail -n 3000 2>&1 &';

 

// テキストサイズが100MBとかだとphpの表示が激的に遅い

// 素のhtmlにしても開けなかった tailで調整するしかない 20200809

$commandCAT = 'pwd && cat ' . "$myTEXT" . ' | tail -n 5000 2>&1 &';

 

 

// print "$commandCAT";

exec("$commandCAT" , $outputCAT);

print '<hr>';

print '<b>bash commandCAT</b><br>';

print "<b>$commandCAT</b>";

print '<hr>';

foreach($outputCAT as $EACHLINE){

    if (preg_match('/.*title.*|.*start_time.*/', $EACHLINE)) {

        // print '<b><font color="blue">' . "$EACHLINE" . '</font></b>';

        print '<b><mark>' . "$EACHLINE" . '</mark></b>';

    } else {

        print "$EACHLINE";

    }

    print '<br>';

}

 

参考

min117.hatenablog.com