動かざることバグの如し

猫ゆえに。。。

php

PHP + utf8mb4のMySQLにDB接続ができないとき

環境 CentOS 6 PHP 7.1 (ただし5系でも確認できた MariaDB 10.1 MySQLに接続できない PHPからPDO経由でMySQLへ接続しようとしてもうまくいかない。 PDOException: SQLSTATE[HY000] [102] Can't initialize character set utf8mb4 (path: /usr/share/mysql/ch…

PHPで「Call to undefined function bcadd() 」エラーが起きた

php

前にセットアップしていたときに見慣れないエラーに遭遇した [Wed Nov 01 19:35:58 2017] [error] [client 192.168.1.66] PHP Fatal error: Call to undefined function bcadd() in /******.php on line 117, referer: http://192.168.1.11/index.php 結論か…

UbuntuでPHP7+Mecabのインストール

環境 Ubuntu server 16.04 nginx 流れとしてはphpインストール、mecabインストール、php-mecabのインストール、設定 PHPのインストール 恒例、レポジトリの追加 add-apt-repository ppa:ondrej/php apt-get update php-fpmのインストール。php-7.0-devをイン…

PHPでエラーログの確認に使えるコード100選

php

100個もいらないので6つで 確認環境 PHP 5.6

Phalcon PHPでバージョンの確認したい

昔?はphp -iでgrepすればイケたっぽいけど今はそれだとバージョンは表示されない のでそのままPHPを実行する $ php -r "echo Phalcon\Version::get();" > 3.2.2 そもそもPhalconがインストールがされているかの確認は-mで可能 $ php -m |grep phalcon phalc…

owncloudを高速化メモ

cronの見直し デフォルトではページ開くたびに更新が発生するっぽい() 素直にCrontabで定期的に実行させたほうがよさげ apacheユーザーでcrontabを開く sudo crontab -u www-data -e 以下追加 * * * * * php -f /var/www/owncloud/cron.php owncloud側の発…

Twitterの投票非公式APIのメモ

php

gist.github.com gist.github.com hiroto-k.hatenablog.com

【PHP】Ubuntu 16.04ではPHP5.6をインストールすることは出来ない

発端 さぁ心機一転、Ubuntu16.04でPHPインストールしようとした。まぁ7.xも悪くないけど今回は安定志向ということでPHP5.6をインストールすることに sudo apt show php 結果 user@ubuntu:~$ sudo apt show php Package: php Version: 1:7.0+42+deb.sury.org~…

【MySQL】Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENTと出る

MySQLアップデートするとOwncloudが動かない。 おかしいと思って見ると以下の様なエラーが出てた。 An exception occurred while executing 'INSERT INTO `oc_users` ( `uid`, `password` ) VALUES( ?, ? )' with params ["user", "************************…

【CakePHP】ビューごとにタイトルを設定する

この辺はRailsより柔軟だなって思った とりあえずやり方教えろ まずapp/View/Layouts/default.ctpにて <html> <head> <title><?php echo $this->fetch('title'); ?></title> と書いておく。 んで各ビューにて assign('title', "自己紹介のページ"); とやるとその文字がタイトルになる </head></html>…

【PHP】強いランダムな文字列を生成する

php

ランダムな文字列を生成したい場合 7672ff626cとか14158e33deがほしい場合 ランダムな数値が欲しい場合 3807350098とか487496953とかが数字のみ(0-9)で欲しい場合はさっきのやつにbin2hex()を加えればおk この場合与えた(数値*2)+2が返ってくる…

composer installとcomposer requireの違い

なんてことはなかった composer installはインストールするだけ。composer requireはインストール&composer.jsonに依存状況を記述 つまりcomposer requireはnpm install -S socket.ioに相当する

【PHP】連想配列の特定のキーのみ削除したい人生だった

php

コード 4, "name"=>"Hoge"]; $array[] = ["id"=>3, "name"=>"Piyo"]; $array[] = ["id"=>2, "name"=>"Fuga"]; $array[] = ["id"=>1, "name"=>"Foo"]; print_r(array_map(function ($v) { unset($v["name"]);return $v; }, $array)); 結果 Array ( [0] => Arr…

Rubyのsort_byをPHPでも使いたい人へ 配列内の値でソート

php

rubyのsort_byはめっちゃ便利。マジで ary = [{id: 2,name:"hoge"},{id: 3,name:"hoge"},{id: 1,name:"hoge"}] p ary.sort_by { |_| _[:id] } => [{:id=>1, :name=>"hoge"}, {:id=>2, :name=>"hoge"}, {:id=>3, :name=>"hoge"}] ぜひこんなメソッドがPHPにあ…

【PHP】file_get_contentsでエラーの分岐

php

file_get_contentsは非常に便利なPHPのメソッドでたった一行で外部URLを取得できる が、しかし存在しないURLだったとかサーバーエラーとかの例外に弱い PHP Warning: file_get_contents(http://hogehoge.com/hoge/): failed to open stream: HTTP request f…

PHPのビルトインサーバーではDocumentRootを指定できる

php

知ってた? ビルトインサーバーとは 本来PHPで開発する際はWebサーバーを建てなきゃいけないのでApacheやnginxをインストールしなきゃいけない。 けどPHP5.4で実装されたビルトインサーバー機能を使えばPHPがWebサーバーとして起動してくれるので、Apache等…

PHPで「1ヶ月前の今日」を求めることはできない

php

久々にPHPFXXK案件に遭遇してしまった・・・・・ やりたかったこと 一ヶ月前の今日を求める 例を挙げると 2016年4月28日 → 2016年3月28日 2016年1月28日 → 2015年12月28日 ただし2016年3月31日のように先月にその日付が存在しない(先月日数<今月日数)場合…

やっとPHPでアップロードする処理を書いてみた

php

そういえばPHPでアップロードするフォーム画面作ったことないなぁってことで作成 今回は JSON形式のみアップロード可 日本語含むファイル名はまだ想定していない ファイルサイズ上限付き

PHPでファイルのアップロード

php

そういえばやったことないな、と <html> <head> <meta charset=utf-8" /> <title></title> </head> <body> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="upfile" /> <input type="submit" value="アップロード" /> </form> </body> </html>

PHPでファイルの一覧を取得する方法

php

PHPにはDirectoryIteratorという便利な方法があるっぽい。 $path = dirname(__FILE__); $dir = new DirectoryIterator($path); foreach ($dir as $file) { $file = mb_convert_encoding($file, "UTF-8", "auto"); echo $file . "<br>"; } だがこれだと「.」と「.…

PHPを使ってmp3のタグ情報を取得する方法

getID3ってのを使えばできる。 インストール ubuntu最高や sudo apt-get install php-getid3 これで/usr/share/php-getid3にインストールされる。 サンプル analyze($filename); getid3_lib::CopyTagsToComments($fileInfo); …

英語の単数形を複数形に変換するプログラムを作成してみた

php

例えば「book」って投げたら「books」で返したり、「box」で投げたら「boxes」で返ってくるようなメソッド。 そもそも複数形の命名規則って? ここが一番手こずった。今まで感覚でやってたしググっても上位のサイトが結構間違ってる。 基本的には語尾に -s …

TwitterのStreamAPIをPHPで使ってみる

php

ネットでよく貼られてるベーシック認証によるStreamAPIはもう出来ないっぽい? が、イチから認証すると面倒なので、tmhOAuthというライブラリを使う。やったね user->lang === "ja"){ $screenName = $tweet->user->screen_name; $text = $twe…

PHPで文字つきの画像を出力する

php

PHPで日本語(マルチバイト)を含む文字列を一文字ずつ配列に分割させる方法

php

ありそうだけどコレって標準関数で用意されてないんだね・・・ これが魔法の一行 preg_split("//u", $text, -1, PREG_SPLIT_NO_EMPTY);<pre> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "d" [4…</pre>

PHPで文字列の配列を文字数の長さでソートする方法

php

これ一行でできるんだね。惚れたわ usort($a, create_function('$a,$b', 'return mb_strlen($a, "UTF-8") - mb_strlen($b, "UTF-8");')); サンプル <pre> </pre>

新・loginpack

php

いつものやつ少しだけ改良(?)した

PHPで処理時間を計測する方法

php

以下のように2回microtime()メソッドを使ってその差を計算するといった形。

PHPで出力バッファリングを使って「処理中」と表示させてみる

php

通常だとphpで文字を表示させようとしてもすべての処理が完了してから一気に出力されるので出来ない。 しかし出力バッファを強制出力させることで処理中でも表示か可能になる。 結論から言えば 時間のかかる処理の前にob_flush()とflush()を実行させる サン…

PHPでユーザーにファイルをダウンロード「させる」方法

php

最近でPDFとか動画もブラウザ内で表示されるのでファイルとして保存されることは少なくなったけど、 あえて任意のファイルをダウンロードさせたい場合はPHPで実現できる