それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

php

brew で php のインストール(homebrew/php/喪失以降)

phpを brew で入れようとしたら、エラー Homebrew/php (deprecated) です。 世の中の brew install で書かれた意識高いPHP'erのゴミ記事が役に立たなくなりました。 どうするのか? php はtapから本家に戻りました。なので、以下の通りで十分です。 brew ins…

phpで指定した日付の範囲を作り月末にも対応させる

php

php の日付範囲を求めるにはDatePeriodを使うと便利 DatePeriod にスタートと、終了、そして間隔を追加すると日付範囲のオブジェクトが出来る。 = 5.3.0, PHP 7) DatePeriod implements Traversable { DatePeriodは Traversable なので、foreach などに入る…

LaravelのPHPStorm/IntelliJ IDEA でphpのデバッグ(xdebug)をビルトインサーバーで行う

php

# LaravelのPHPStorm/IntelliJ IDEA でphpのデバッグ(xdebug)をビルトインサーバーで行う laravel をxdebug でデバッグする、やり方はいっぱいある。 いっぱいあるのに、ネットに情報が殆どないので。さすがphper といったところか Xdebugデバッグをする。 a…

laravel で phpunitのテスト実行時に、PhpStormからXdebugを有効にする。user.iniを有効にして実行

xdebug を有効にしてphpunitを実行したい。 Xdebug の設定をしたとしても、phpunit の設定だとか、xdebugや日付などの php.iniを作るのが不便。 プロジェクトを切り替える毎に、php.iniを見直すのは割と面倒くさい。 phpには user.iniがある php には実行時…

php7で拡張機能のAPIが変わって動かなくなってる pamをなんとかした

php

php 7 で pamモジュールが動かなかった。 install してもPHPのPAMが動かなかったんですね。 PHPのC言語APIが変わってた コンパイルエラーなので、調べていくと型宣言辺で落ちてた。 調べていくと、拡張機能のAPIが更新されてたことがわかったなど この方法で…

WEBユーザのログイン認証をssh経由でやる、割と強引な方法

認証面倒くさい。 LDAPで連携くんだり、PAMで認証したり、OAuthしたり、ユーザ認証をする方法は山ほどある。 でも、それぞれ一長一短があってそれらを解決するいい方法がほしいと思っていた。 WEBのユーザのログイン認証をSSHでやる ひょんなことから、sshpa…

php-fpm で php.iniの設定渡す/display_errorsなどをPHP_VALUEで設定する。

PHP_FLAGを使いたい。 apache の mod_php や apacheの fcgiなら簡単にできるんだけど、nginxだとfcgiでどうやって 初期設定を渡したら良いんだろうか。 こうすれば出来る。 fastcgi_param PHP_FLAG "display_errors=on \n display_startup_errors=on"; fastc…

phpで別アプリへのセッション受け渡し

php

php から別のアプリへセッションを受け渡したい 認証済みのセッションキーを、別のアプリへ受け渡ししたい。今回は mp4 と vlc でテストした。 渡す時

vimでphp.iniの設定ファイルを開くときのハイライトさせるファイルタイプ設定

php

vim で iniファイルのハイライト ini ファイルは dosini という名前でデフォルト登録されている。 :set ft=dosini モードラインを書いておく。 ファイルの1行目に書いておけば、モードラインとして設定を拾ってくれるので多少ファイルの中身とファイルの拡…

php のエルビス演算子を初期化以外の用途で使ったら・・・

php

エルビス演算子が便利だけど。 三項演算子の省略形 elbis operator が便利だけど int(10) //} 変数初期化チェックがシンプルになって嬉しいよね。empty 相当だよねーってウキウキして empty の代わりの使ってみたり。 三項演算子を省略する使うとちょっとね…

pdoで文字化けを防ぐutf-8を設定する

php

php で MySQL(mariaDB)にアクセスすると文字化けをする いまどき文字化けするなんて思わなかった。古いデータベースだし mysql 関数でやってるやつだからなぁ set name しなくても PDO のドライバの初期化のタイミングで文字コードを指定できるようになって…

php7 で非推奨になったmysql_connect関連のmysql関数を対応する(mysqli

php

php7 から mysql_connect が非サポートになりました。 いまどきPDO使ってないとかありえないんですけど。まぁmysql_connect を使ってるプログラムが動いてることも多いわけです。 今回はこの対応をしたので、誰かの役に立てばいいのでメモっておきます。 mys…

DBアクセス抽象化で、INSERT と UPDATE でコードを共通化させるハック。

php

困りごと: INSERT と UPDATE の共通化をしたい。 似たようなコードを何度も書くのはめんどくさい。テーブル定義が変わったときにもう鬱陶しい。 共通化したい・・・ function insert( name , date ){ sql = "INSERT INTO table_name VALUES( #{name} , #{da…

phpのリクエストパラメータをサクっと処理する

php

phpのリクエストを読むのに、ブラケットがめんどくさい ブラケット書くのがめんどくさい 此の記述がもはや狂気。

php で終了しないプログラムを書く

php

php はホスティングなどのリソースを上手に扱う関係上、実行時間が限られてる。 なので、終了しない無限ループをキックしようと思うとこんな感じなる。 #!/usr/bin/env php

php のフォークと強制終了

php

単純なフォーク

PHP imagick でPDFからJPEG画像をDPI指定で取り出す

php

imagick で jpg 変換すると画質が悪い ぱぱっとPDFをJPEGにしようとすると、とても画質が悪い density オプションを付けたい convert コマンドで与えるようなオプションを渡すにはどうすればいいのか。 setOption でDPIを渡す setOption('density',400 ); $i…

php imagick でページ指定を簡略化して pdf を高速に処理する

php

ruby で出来たので、php でもできるかなと思って調べてみたら。 readImage('myfile.pdf[0]'); $imagick = $imagick->flattenImages(); $imagick->writeImage('pageone.jpg'); ?> php のマニュアルにバッチリなコードが書いてあった。 でも動かすの大変だった…

php の realpath ってファイルチェックも兼ねてた

php

realpath を何となく眺めていると。 ファイルが存在しない時は false を返すと書いてある。え、そうなのか。当たり前だけど、気づいてなかった realpath() returns FALSE on failure, e.g. if the file does not exist. file_exists した後に、realpath で整…

php でhttp connection close を実現する

php

HTTP コネクションンをClose する

WEB経由でファイルのパーミッション・オーナーを変更する

ブラウザ経由でファイルのownerを弄りたいな でも、 chown って root しか許可されてないんですよね。 chown するとパーミッション管理が破綻するおそれがあるからでしょうね。 解決策 : sudoers に記述する もう、sudoers 使うしか無いですね。 Cmnd_Alias …

php で pam を使う(ってはいけない)

php

php から ログインに Linuxのユーザー名&パスワードを使ってみよう Linux のログインには、PAMが使われるのが一般的。 PAM を使うことでLinuxのユーザー名で認証ができる。 今回は PHPの pam を使って認証してみる ただし、このやり方は試験的にやってるの…

php で prototype チェーン的なことをする

php

php で prototype 的なことをやろうと思った。 php の rar をExtendsしようとしたけど、extends できない

任意の拡張子(.jpg/.zip/.ico) をApacheHandlerでcgi/php処理する

php

ブラウザでURL画像をクリックしたら、php起動したい 画像のURLをクリックすると、WEBサーバから画像が送信される。当たり前のことですが、この当たり前の処理に、ハンドラを加えてプログラムを追加したいと思います。 http://example.com/img/top_banner.jpg…

ob_gzhandler が 画像に効かないので強引にやる

php

ob_gzhandler が画像を無視する gz が付いたphpから、content-type: image/jpeg を設定すると transfer-encoding : chunked になってしまい、GZipで転送されない・

コンテンツをgzip 圧縮する gz hander とても楽だった

php

コンテンツを圧縮するには、1つ書くだけ

php のシェル呼出しで引数を後から決める、変数内の文字列展開をする方法

php

php でコマンドを実行するとき、コマンド組み立てが、美しくない $src = "my-sample.jpg" $dst = "out.png" $command = "convert $src $dst" ; 文字列の展開タイミングがあるので、これをクラスにすると面倒くさいんだよね。 コマンドを扱うクラスを作ると処…

phpで複数行のシェル呼び出しをバックグラウンドにする

php

php でシェル呼び出しをバックグラウンドにするには シェル経由のコマンド実行をバックグラウンド(プロセスの親 にする)には次のとおりに書く。 /dev/null 2>/dev/null & "); STDOUT/STDERRをphp から切り離せば、プロセスをバックグラウンド・ジョブにす…

php rmdir() で空じゃないフォルダを消すには?

php

php の rmdir には forece オプションがない。 普通に rmdir すると not empty directory って怒られるんですよね。 みんなどうやってんのかなーって調べたら system("rm -rf $target") してるみたい せっかくなのでSPLで書いてみました。 isDir() ) { retur…

php で create temporary Directory(tmp)

php

create temp dir for zip unpacking