php

巨大なpng画像をjpegに変換しようとするとエラーになる

でかいpng画像をjpegに変換しようとするとエラーになる話。 変換しようとした画像は、101000 x 2400の画像。 $ identify sample.png sample.png PNG 101000x2400 101000x2400+0+0 8-bit DirectClass 495MB 0.000u 0:00.000 convertコマンドを使って変換しよ…

igo-PHPを使って形態素解析をやってみる

形態素解析と言うとMecabやらChasenやらKuromojiやらを使ってやる場合が多いんだけど、いざPHPでやろうとするとそれぞれにバインディングを準備したりして意外と面倒臭い。 ぼやぼや探していると、igo-PHPというお手軽そうなものがあるので、以下のサイトを…

zoomify-image-phpを修正した

php

Zoomifyという画像表示ソフトウェア向けに画像を加工するプログラムを探していた。加工のプログラム自体はPythonやRuby、Windowsなど色々あったのだけど、今後の扱いを含めるとPHP版で準備したかった。 探してみた で、色々と探してみるとZoomifyImage porte…

Mysql/MariaDBとPHPでデータを暗号化、復号化する

Mysql/MariaDBの場合 -- AESで暗号化。BLOB型(バイナリ)で入れるならHEX()は不要 -- "E0827B40347D3227B65775B8226A1BF1"が返ってくる select HEX( AES_ENCRYPT('hogehoge', 'cryptkey') ); -- AESで暗号化されたものを復号化。BLOB型(バイナリ)で入れてある…

PHP経由でダウンロードしたファイルが壊れてしまう

php

現象 PHPを経由してダウンロードさせたファイルが壊れてしまう 原因 PHPないからファイルを出力する際に出力バッファに残ったゴミが一緒に出力されてしまい、結果ファイルが壊れてしまう 対策 出力バッファの中に残ったゴミが問題なので、ファイルの中身を出…

file_get_contents()と readfile() をベンチで比較してみた

php

PHPでファイルの中身をそのまま出力する際に、file_get_contents() を使う場合と readfile() を使う場合があって、あんまり考えてなかったのだけど、改めて調べてみた。 単純に比較してもよく分からなかったので、PHPで簡単にベンチとるならUbenchがよさげ …

PHPでXMLファイルを配列に簡単に変換する

php

なんか色々使うの面倒くさいなぁっと思ってたら簡単な方法が紹介されてた。 ref. PHPでXMLをArrayに変換する多分一番簡単な方法 $xml = file_get_contents("sample.xml"); $array = json_decode(json_encode(simplexml_load_string($xml)), true); var_dump(…

n次元の距離と類似度を計算する

php

n次元の距離と類似度を計算する 類似度と距離 - CatTail Wikiのサイトを見ながら、簡単そうなのをPHPで書いてみた。探せば普通にライブラリがありそうだが、はじめに手を動かすくらいはする。他にも色々載ってるのだけど、簡単そうなものだけピックアップ。 …

画像の類似度を判定するためのライブラリ Libpuzzleを試してみる

php

Libpuzzleは画像の類似度を計算することができるPHPのライブラリ。extensionの形で導入するので、コンパイル等が必要。 以下のサイトを参考に - libpuzzleを使ってみる - phpでlibpuzzleを使ってみる【備忘】 - how to install the libpuzzle extension for …

Atomエディタでatom-beautifyを使ってPHPのソースコードを整形する(追記あり)

使っているPCが凄まじく貧弱なのが悪いのだけど、今まで使ってきたEclipseの遅さに耐え切れなくなってきた。しかたがないので幾つかのIDEを触ってみたのだけど、ぶっちゃけAtomエディタでいいんじゃないかという結論に陥ってしばらく前から使ってみている。 …

Composerを触ってみる

php

使い方 Composerが動作にはPHP 5.3.2以上が必要 1. composer.pharをダウンロードする $ curl -sS https://getcomposer.org/installer | php #!/usr/bin/env php All settings correct for using Composer Downloading... Composer successfully installed to…

公共クラウドの動作確認

php

先日公開された観光地情報を提供する公共クラウドについて動作確認をしてみた。 - 自治体の観光情報をまとめたウェブサイト開設--オープンデータで活用、APIも提供 - 「全国移住ナビ」及び「公共クラウド」の供用開始 - 公共クラウドシステム ひとまずPHPで…

多言語の混ざったCSVを出力する

普通にCSVを作ろうとすると、大体Shift-JISで出力してしまうのだけど、CSV中に複数言語入っているともちろん文字化ける。ならばとUTF-8で出力するとExcel先生的にぐっちゃになる。さてどうしたものかと思案したのだけど、要するにBOM付きUTF-8にしてしまえば…

HDFSのラッパー

作りかけの何かが出てきたのでサルベージしておく ぶっちゃけ、$ hadoop dfs ~ をPHPのコマンド風に呼び出せるようにしてみただけ ※ で、execしている たしか途中でいらなくなったので、作ってる途中でお蔵入りしたはず めっちゃ遅い

PHPでCKANのAPIを叩くサンプル

php

CKANのAPIは、HTTP経由でアクセスする。 取得に関しては、通常のGETで可能だが、更新についてはAPIキーを使ったPOSTが必要 $ cat samplh.php

FizzBuzz問題のテストをPHP-Unitで書いてみる

今まであまりテストを書いたことがなかったので簡単な問題のテストを書いてみた。内容は、以前話題になったFizzBuzz問題。フレームワークはCakePHP2系。 ref. どうしてプログラマに・・・プログラムが書けないのか? やってみてわかったけど、この問題だと骨…

PHP-Unitをインストールする

php

手元の環境に入っていなかったのでインストールする そもそもPEARが入っていなかったので追加 $ yum install php-pear CakePHPのサイトを見ながら道なりに $ pear upgrade PEAR $ pear config-set auto_discover 1 $ pear update-channels インストールして…

json_encodeで変換しようとすると怒られる Invalid UTF-8 sequence in argument

php

PHPで、配列をjsonに変換しようとjson_encode()を使用すると以下の様なエラーが出て怒られる json_encode(): Invalid UTF-8 sequence in argument 文字コードは事前に変換していたので、UTF-8になっているはず。じゃぁ変換ミスかと思って確認してみても特に…

PHPWordのテンプレートで改行を含む文字列をsetValueで追加する

php

docxを読み込んでPHPで編集できるPHPWord。 予めテンプレートを準備してPHPで文字を挿入するのが便利 なんだけど、普通に改行を入れようとすると空白文字になる。なるほどタグを突っ込むのかと思い、nl2brをしてみると不正なファイルですなどと言われてしま…

FacebookページにGraph APIを使って投稿する

FacebookのAPIを通して、Facebookページに投稿するプログラム 基本的には、Facebook PHP SDKを使う。使い方はそちらのサンプルをベースに。 Facebookにログインする際に、"manage_pages"を付けておく。 これで投稿者が管理するFacebookページを操作できるよ…

ドキュメントビューアを作ってみた

php

先日からマニュアル的なものを書いていこうと思って色々と考えたところ、結局手慰み的に作ってしまったというお話。内容的にはMarkdown形式のファイルを特定のディレクトリに放り込んでおく。プログラムにアクセスするとファイルを結合してHTMLとして表示し…

PAERのインストールディレクトリを確認する

php

以下のコマンドを実行し「PEAR directory」で確認可能 $ pear config-show Configuration (channel pear.php.net): ===================================== Auto-discover new Channels auto_discover <not set> Default Channel default_channel pear.php.net HTTP P</not>…

CakePHPを使ったサイトにab(Apache Bench)をかけるとFailedしまくる件

php

CakePHPを使ったサイトに対して調子に乗ってab(Apache Bench)をかけるとFailedしまくる。試しに10回程度にしても9回失敗とかざら。かと言ってブラウザ経由でアクセスしてもそんなにひどいような状態には思えない。なんじゃらほい。 っと思ってたのだけど、と…

Youtubeに投稿された内容をRSSで取得する

php

ユーザが登録した動画を新着順に取得する http://gdata.youtubh.com/feeds/base/users/[ユーザID]/uploads?orderby=updated&alt=rss&client=ytapi-youtube-rss-redirect&v=2 例)ユーザ名:「nihonfalcomsince1981」の場合 : http://gdata.youtubh.com/feeds/…

Pinterestに投稿された内容をRSSで取得する

php

ユーザの全ボード内で最新25件取得 http://pinterest.com/[ユーザID]/feed.rss 例)ユーザ名:「atyks」の場合 : http://pinterest.com/atyks/feed.rss ユーザの特定ボード内で最新25件取得 http://pinterest.com/[ユーザID]/ [ボード名].rss 例)ユーザ名:…

Fukuoka.php Vol.4

概要 項目 内容 日程 10月23日(金) 20:00 to 23:00 会場 ギルドカフェコスタ(福岡市中央区大名1-10-14) Facebookグループ https://www.facebook.com/groups/355557634510818/ Togetter http://togetter.com/li/398486 場所がギルドカフェコスタということ…

機種依存文字を変換して置き換える

php

概要 ・例えば「㈱」を「(株)」に置き換えるような処理。 ・なんか昔やったことがあったけど、改めて書いておく。 ・Perlで言う「Unicode::Normalize」的なもの 使うもの 自分で頑張ってもいいし、新しいものを探してもいいんだけど昔からあるPEARのライブラ…

Fukuoka.php Vol.3

項目 内容 *日程 9月28日(土) 19:00 to 21:00 *会場 paperboy&co. 福岡支社(福岡市中央区天神2-7-21 天神プライム8階) *参加者のまとめ http://togetter.com/li/382026 *Facebookグループ https://www.facebook.com/groups/355557634510818/ @akase244氏の…

phpで特定のディレクトリ配下のパーミッションを再帰的に変更する

php

// 出力バッファをクリアする ob_end_flush(); ob_start('mb_output_handler'); // 検索対象の基点となるディレクトリ $base = "/path/to/parent/dir"; $dir = "target"; print( "**start " . date("Y-m-d H:i:s"). "<br>"); traceDir($base , $dir); print( "**…

PHPでパスワードを生成する

php

ランダムな英数字を組み合わせたパスワードを生成したい。 自分で作っても良かったのだけど、面倒くさかったので探してみた。 CakePHPのバージョン1の頃に含まれていたらしいライブラリにそれっぽいのがあったのでサルベージ http://api11.cakephp.org/neat_…