Goutteのリクエストタイムアウト秒数を設定する

やたら重たい処理をさせたいけど、先にGoutteがへばってしまうと困るのでタイムアウト秒数を変えたい時、以下のように書いたら行けるみたいですね(´・ω・`)

もしくは以下の書き方。

参考 cURL timing out even after setting timeout value · Issue #197 · FriendsOfPHP/Goutte · GitHub

[PHP] 全角カナ+全角濁点の文字を、濁点付きの全角カナに変換する。

よくゆうちょ銀行の明細で出くわすんですが、「ニシフナバシ」ではなく「ニシフナハ゛シ」みたいな、濁点を1文字としてカウントして表記されている文字がありますよね。本当地味ですが、アレが結構うざくてどうしようかと考えてたんですよね……

んで、ウンウン唸って考えても出てこず、ふとトイレに踏ん張りに行ったらポンッと産まれたのが以下のコード。

なんという力技・・・(´・ω・`;) ちなみにカタカナ+濁点をpreg_replaceで一つ一つ潰していくというのも考えたんですが、超必殺クラスの力技なので最後にとっておきます。最後が来ないことを祈るばかりだぜ><

 

[PHP] 動的に生成したファイルを任意の名前で保存させたい。

PHPの処理結果を普通のHTML形式ではなく、JPEGやらCSVと言った形式で組み立ててダウンロードさせるようにした場合、ファイル名がスクリプトの名前そのまんまになってしまったり、名前がつかずに保存されるのが困りモノ……(´・ω・`)

でも、「Content-Disposition」ヘッダーフィールドを設定すると、保存名をこちらの好きなものに変えられるみたい。

PHPで書くならこんな感じ。↓

ちなみにこのディレクティブでは、ファイルをダウンロードさせるか(attachment)、そのまま画面に表示するか(inline)ということも設定できます。

「今まで使ってなかったのかよー」というツッコミはご勘弁ください……orz

Raspbian(RaspberryPi)でnginx+php-fpmを動かしてみる。

完全に自分用ですが。

nginxとphp-fpmを動かしてみたかったので、部屋に転がってたRaspberryPiにインストールしてみました。

とりあえず必要なパッケージをインストール。

依存パッケージはaptitudeの方で全部拾ってきてくれるはず。

ちなみにバージョンはnginxが1.2.1 php5-fpmは5.4.4です。

 

次にnginxの設定。デフォルトの設定ファイルの中から特に書き換えた部分だけ抜き出してます。

 

nginx, php-fpmの起動。

最後に起動設定の変更。

 

これでサイトルートの中にphpinfo();でも書いたphpファイルを投げ込んでアクセスできるかどうか試したらいいと思います。

 

一番ハマったポイントはfastcgi_passの値です。いろいろなブログの記事を読んでみても、設定値は「127.0.0.1:9000」にしろ~って書いてあるのですが、残念ながら俺のオツムではよく分からず……。でもnginxのデフォルト設定ファイルにはもう一つ、sockファイルを入力する方法も併記されておりまして、そちらのパスを通してみたらうまく動きました。とりあえず動いたのでこれでよしということで(´・ω・`)

[PHP]とりあえず使いたい人向けの PHP::DateTime 例文集

DateTimeクラスが便利そうなのは分かるけど、お作法がめんどくさそうなのでとりあえずdate関数を使っちゃってる方に向けて贈る、思考停止していてもコピペすれば使える例文集です。

まさに俺得記事。

一応リファレンスがないのはアレなので貼っておきます。時間があったらちゃんと読んだほうがいいですよ><
http://www.php.net/manual/ja/class.datetime.php

1. 基本形(現在時刻出力)

format()メソッドで時刻を出力。引数に時刻の書式文字列を入力して、好みの書式で出力します。

「DateTime::ATOM」や「DateTime::ISO8601」のように、予め定義された定数を引数に渡しても出力してくれます。

定数以外で書式を作りたいときはdate関数のページを参照するとよろし。
http://jp2.php.net/manual/ja/function.date.php

2. 時間を指定して出力

コンストラクタの引数に直接時刻を入力するか、setDateメソッド、setTimeメソッドを使用して時刻を指定します。

コンストラクタが時刻として認識してくれるパターンは、こちらのページを参照すると幸せになれるかも。
http://www.php.net/manual/ja/datetime.formats.php

3. 時間の足し算、引き算

開始日時、終了日時を得る時なんかに使うかもしれないです。

DateIntervalクラスコンストラクタの引数の書式は一度覚えてしまうと結構便利。

引数の書式については、こちらの記事を読んだほうが分かりやすいかもしれないです。
PHP 5.3 の DateTime オブジェクト関連の便利な新機能 – 肉とビールとパンケーキ by @sotarok
http://sotarok.hatenablog.com/entry/20090716/php_53_datetime_dateinterval

4. タイムゾーンを指定する

DateTimezoneオブジェクトを、上記いずれかの方法で渡すとタイムゾーンを指定できます。

タイムゾーンの書式についてはこちらを参照するといいです。
http://www.php.net/manual/ja/timezones.php

 

とりあえずこんな感じで。

ここまで書いといてからいうのもアレですけど、本当に急いでいるならdate関数を使ったって全然問題無いと思います(´・ω・`)