読者です 読者をやめる 読者になる 読者になる

min117の日記

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

PHP フォルダ内にあるmp4動画の再生サムネイル画面を自動作成する(PHP + HTML5/videoタグ)

// フォルダ内に溜まった動画をサムネイル表示して、クリックしたら再生できるようにしたい。画面イメージはこんなの。 母艦fedoraのApache HTTP + PHP5 の環境。 ーーー できた。ソース。 $ vim html5_03_video.php

PHP フォルダ内の全てのテキストファイルの中身を1ページ内にまとめて表示する

Apacheで公開している自宅サーバのフォルダ内に、複数のテキストファイルがある。 全てのテキストファイルの中身を確認したい。1つ1つ開いていくのは大変なので、index_txt.php をクリックするだけで、全てのテキストファイルの内容を1ページに表示できるよ…

PHP 地デジ録画してるPT3プロセスIDとデバイス名を確認して録画を停止するボタンを作る

// こんな機能つくった。録画プロセス(青文字)を確認したうえで、そのプロセスを停止するボタン(赤枠)を動的に作る。ボタンラベルにプロセスID(PID)を表示させる。 ソース 正規表現チェッカー超便利。 okumocchi.jp

bash シェルからcurlでPHPを叩く

// fedoraサーバにあるrecHTTP.phpファイルにGETで引数を投げてやると、「録画プロセスrecpt1が起動しているか」を判定して返すようにしてある。 いつもはブラウザから実行してた。 これを、RaspberryPiやMacのシェル(bash)上からコマンド実行できるように…

php ブラウザ上でPINGを飛ばしてサーバの生存確認をする

// WakeOnLanで起動させた遠隔地のサーバが正しく起動したかどうかを確認したい。 構成 ①サーバ(192.168.3.11) 普段はスリープ状態。WakeOnLanで起動させる ②RaspberryPi(192.168.3.9) サーバのすぐ隣にある。Webサービス(Apache)あり。PHPあり。 やる…

raspberrypi apache2でPHP5のインストールエラーになる場合は /etc/apt/sources.list.d をチェックして解決

// raspbian で PHPをインストールしようとしたらエラーになった。「いくつかのインデックスファイルのダウンロードに失敗しました」とも出る。 「raspberrypi php5 インストール」とかで検索しても、地味に原因が分からない。 ーーー 原因は /etc/apt/sourc…

bash コマンドでOneDriveに接続/OAuth2.0認証のcodeをgetCode.phpで取得する

// OAuth2.0の仕組みがわかってきた。OneDriveAPIもAmazonCloudDriveAPIもGoogleDriveAPIも、これが分かればなんてこと無い。 このサイトが分かりやすかった。 gihyo.jp 上図でいうところの、③認可コード をまずは取得する必要がある。そのためには、図にあ…

PHP 動画開始からN秒後を切り出してサムネイル画像を作る「サムネイル作成」ボタン実装

// やりたいのはこれ。こういう画面で、秒数を指定して「サムネイル作成」を押すと 例えばこういう動画リンク(単なる文字列でしかない)に こんな感じでサムネイルが付く 動画は各画像から切り出す。 ーーー ● 構成 chkPID.html(切り出す秒数を指定するfor…

PHP 実行中のHandBrakeCLIのPIDをkillする画面で入力 →「PIDとkill実行可否」を受け取る

// 前記事 の中身を少し改造。 min117.hatenablog.com 実行中のHandBrakeCLIのPIDをテキストフィールドに表示してからkillを「実行」できるようにした。 chkPID.php 実行すると、killPID.php が呼ばれる。 killPID.php ソースはこれ。 chkPID.php(変更部分…

PHP 実行中のHandBrakeCLIのPIDをkillする画面を作る

// とりあえず KILL ボタン作るところまではできた。しょっぱいソースだけど今はこれが精一杯。 「実行」を押したらそのプロセス(PID)をKILLする処理にする。UIとか後回し。まずは処理書けるようになる。 現状のソース chkPID.php

PHP preg_match() の正規表現(ps auxのPIDをキャプチャ成功)

// HandBrakeで圧縮しているプロセスの PID:7705 ファイル名:20160104_205901_cron.ts だとして、 PIDとファイル名を並べた文字列「7705 20160104_205901_cron.ts」 まではbashで切り出せた。 ーーー これを、PHPのpreg_match()で配列m[ ]の中にキャプチャ…

PHP preg_match() の正規表現

// 実行中の動画圧縮HandBrakeCLIのPIDを取ってくるだけのプログラム作りたい。 こんな実行状況だとして、2列目(PID)と13列目(圧縮対象ファイル名)はbashのsedで切り出す。 PHP内では $command = "ps aux | grep HandBrake | grep -v grep | awk '{print …

bash 実行中のHandBrakeがどの動画を圧縮しているかps auxで確認する

// PT3の動画は録画終了と同時にHandBrakeで圧縮されるようにスクリプト組んである。圧縮進行状況を知りたい。topコマンドだと、HandBrakeが動いてるのは分かるけど、どのファイルを圧縮しているか分からない。 ps aux だと、圧縮中の動画が見れる。 # ps au…

Linux uptimeでサーバの起動時間の確認

家のサーバはHP製のProliant MicroServer N54L。 2014年2月に18,800円でポチった。本当にいい買い物をした。 2年近く、全く故障がない。 PT3を2枚刺しで録画もフルだけど、寡黙によく働く。 しばらく再起動してないから不具合が少し。 ターミナルの1つが死ん…

jqueryからPHPにアクセスするシンプルプログラム:合計金額表示→fopen()でファイルに書く→処理中は排他制御

PHP

// 前回記事の処理のうち、サーバ側(PHP)で処理中は排他する制御を実装する。 前回PHPソースに flock($fp, LOCK_SH); flock($fp, LOCK_UN); をそれぞれ入れるだけ。 fputs($fp, $data); の間は排他がかかり、その間は他のプロセスは待ち状態になる。 LOCK_…

jqueryからPHPにアクセスするシンプルプログラム:合計金額表示→fopen()でファイルに書く

PHP

// jqueryから受けた金額と個数から、サーバ側(php)計算した合計を表示させるところまでは前回と一緒。 今回は、その結果をテキストファイルに書き込む。 ファイル構成 ①jquery-php04.html ②jquery-php04_fopen.php ③jquery-php04_result.txt 計算は ①から…

jqueryからPHPにアクセスするシンプルプログラム:合計金額表示

PHP

// 「表示」ボタンを押すと合計金額を計算する。 jqueryから $.get で投げたデータが、PHPの変数 $_GET['price'] で受けられるところがミソ。いろいろ使えそう。 ソース

jqueryからPHPにアクセスするシンプルなプログラム

PHP

「表示」ボタンを押したら、サーバにあるphpが吐き出したテキストを表示するだけ。 // SPI:Single Page Interface クライアントサイド WEB UI AJAXエンジン ビジネスロジック | |XHR ↓ GET/POST ↑ テキスト/XML | サーバサイド CGI系プログラム ⇔ データ…

PHP session_start(); がエラーを吐く場合の対処

PHP

// こんなサイトを作ってて。 index.phpの session_start(); でtokenをチェックしてるけど、エラーメッセージが出てしまう。 このサイトをヒントに対処。 http://network.station.ez-net.jp/server/web/apache/php/error.session.asp /var/lib/session のパ…

PHP フォルダ内にある動画(mp4)から静止画像をキャプチャしてサムネイル化→クリックで再生するサイトを作る

PHP

// 自前の動画が貯まってきて、ファイル名だけだと何が映ってるか分からない。 動画の再生から30秒目くらいの映像を静止画にキャプチャして切り出して、クリックしたら再生できるといい。 完成イメージはこんな感じ。 PHPで作るけど、画像の切り出しだけは…

PHP7をdocker環境のcentos7にインストールする

PHP

昨日、2015/12/4 に PHP7 がリリースされた。 ここを参考にインストールしてみる。 docker にある centos7 にインストールする。 qiita.com // まずはdocker起動。 rootで作業する。 yum install -y epel-release # 依存パッケージをインストール # ソースを…

php アップロードしたファイル情報をmysqlに格納する

PHP

この動画を参考に作ってみる。 Multiple File Upload with PHP and MySQL - YouTube ーーー やりたいのはこう。 サーバにアップロードしたい画像ファイル(例えば01.png)を選択して、 Name欄にその画像へのコメントやメモテキストを入れて、Uploadすると… D…

php カレントディレクトリにある画像にforeach()でhrefリンクを貼る

PHP

今いるフォルダにある画像にリンクを貼ってhtmlに表示する。 画像検索で拾った数枚でテスト。 ページの境目に <a href="">ファイル名</a> したファイル名が入る。

php opendir()をreaddir()して配列に入れる

PHP

readdir()の結果を$entryに入れて即座に読むパターン と readdir()の結果を$file_list[]に入れてforeachで読み出すパターン。 後者だと、後から配列の中身使っていろいろできる。

php サーバへのアクセス元に応じて処理を振り分ける

PHP

phpで $user_ip = $_SERVER["REMOTE_ADDR"] とすると、アクセス者のIPアドレスを抜ける。 LAN内からのアクセスの場合は(クラスCなら)192 が入るはず。 でなければ外からのアクセスと判断することにする。 strpos()は、$user_ip の中に文字列 192 があれば …

phpで複数ファイルのアップロードサイト

PHP

webブラウザからサーバにファイルをアップロードするサイトを作る。出先からサーバにファイルを送るときに便利。 ーーー ・複数選択(マルチ選択)できるようにする。 ・画像、動画…制限なし。何でも送れるようにする。 ーーー こんな感じ。 ブラウザからフ…

phpで画像掲示板

PHP

dotinstall 見ながら 2015/11/1 の記事で作った画像掲示板。 少し手を入れる。 元ソース(dotinstall が使ってるのは多分これ) qiita.com これに手を入れて ・ファイル名はランダムじゃなくて、アップロードした時刻にする。 ・画像の横にファイル名を出す…

AJAXとphpで画像ファイルのアップロードサイト

PHP

blog.asial.co.jp このサイトそのままで作る。 upload_AJAX.html(index.htmlの代わり)でファイル選択 ↓ アップロード upload_AJAX.php が呼ばれて画像が表示される て流れ。 upload_AJAX.php ・upload_AJAX.html からアップされた画像ファイル$_FILES['use…

php exec()で実行したrecpt1の返り値を見て録画失敗(デバイスかぶり)を判断する

PHP

PT3のチューナーは7つあるが、うち地上波は4つ。 末尾が2、3、6、7 の4つ。 例えば、末尾7(pt3video7)をrecpt1が使用中に、再度7で録画しようとすると、デバイスのカブリでエラーになる。このエラーを把握したい。 iPhoneから録画するときには以下の画面か…

recpt1のpidを取り出す

PHP

recpt1で実行中の録画のプロセスIDを取得したい(録画停止に使う)。 こんな感じのプロセスがある状態で iPhoneのSafariからこうすると こういう結果が返る のを、PHPで作る。 ーーー まず、プロセスの取り出しを行う。ここまではシェルを使う。awk素晴らし…

popen("recpt1...") が返すポインタ$handleを、$buffer = fgets($handle)して読んでバッファに入れてpid取得する

PHP

PHP。 shell_exec()とか、exec()とか、ズルはしない。 ちゃんとpopen()したポインタをゴリゴリ読んでこそと思い。いろいろつまずく。 ーーー まず、127行目のprint文が実行されずに困った。 120行目のif文で、ポインタ$handle0に値が入っていないとみた。 11…

Windows10にphpインストールつもりがOSライセンス切れで勝手に再起動→Win10のKMSで何とかする

PHP

VMwareで動かしているWindows10にphp入れる。 仕事用Windowsもいずれ10になるだろうし。開発環境づくりの予行演習。 PHP For Windows: Binaries and sources Releases IISで使うので、スレッドセーフ版とやらを選択。Linuxならyumで一発なのに、Windowsはい…