PHP

【cron】PHPをcronで自動実行する

特にデータベース系の管理業務や、他アプリケーションとの連携などで必要になるcronでの定期実行についてです。
理屈は理解していたものの、実際に設定するとなるとちょっと調べなければいけなかったので忘備しておきます。

そもそもcron動いてる?

まずはcrond(cronデーモン?)の動作確認をば…

$ /etc/rc.d/init.d/crond status

上記コマンドで動作確認が行えるはずです。
動いていないようならば、以下のコマンドでcrondを起動します。

$ /etc/rc.d/init.d/crond start

PHPをキックしてみる

事前準備

cronからPHPを実行する場合、PHPのパス+実行したいファイルのパスが必要になります。
PHPのパスは以下のコマンドで確認してください。

$ which php

PHPのパスが確認できたので、実際にcronの設定ファイルに処理内容を記述します。

以下の書式で記述する必要があります。

分 時 日 月 曜日 [実行コマンド]

指定しない部分がある場合は「*」で埋める必要があります。
例えば、時間指定して実行する場合は以下のように記述します。

0 12 * * * [上で調べたPHPのパス] [実行したいPHPのフルパス]

これで、毎日12時になると実行されるという形です。

間隔を指定する場合や複数回実行する場合、範囲を指定することも可能です。
上記の処理を行いたい場合はドキュメントを参照してください。

cronの設定ファイルにコマンドを記述する

ターミナル上でエディタを起動して編集します。

$ crontab -e

基本的にはviエディタで開くはずですので、viエディタのコマンド等を参照して記述するようにしてください。

ということで、ざっくりですがcronでPHPを定期実行する設定方法でした。

一度設定すると、しばらく設定しなくなるものって忘れがちですよね…

【PHP】日本語ファイルのアップロード処理

基本的には問題なく処理できているはずのアップロード処理が、一部のファイルで不具合発生していたので、解決までの流れをメモしておきます。

解決策

以下の記述を取り急ぎ追加し、問題解消を確認しました。

  • mb_internal_encoding(“UTF-8”); を追加
  • setlocale(LC_CTYPE, ‘Japanese_Japan.932’);
  • basename() を別の処理に変更
続きを読む

【PHP】Chromeのコンソールにログを出力する

極めて個人的なお話なのですが、PHPのデバッグって面倒ではないですか?
特にIDEを利用しないでもできるレベルの修正では「どこが間違っていて動かないのか」を特定するのが非常に面倒です。

※IDE使えと言われたらそれまでなのですが…

そんな時に、Javascriptなどで利用している開発者ツールのコンソールへ何かしら出力ができれば、問題解決の助けになることがあります。

今回はPHPからChromeのコンソールへ出力できるChromePHPのご紹介です。

続きを読む

【PHP】strtotime関数の便利な使い方

PHPで日付や時間を扱う際に頻繁に利用する「strtotime関数」
真面目にドキュメントを読めば良いのですが、現場で対応していると「目的の機能を実装するためにコピペ」というパターンも多いかと思います。

ちょっと真面目に調べてみたら、意外と便利な関数でした!

続きを読む

PHP+jQueryでクロスサイトスクリプティング

ふと思い立ってごりごりと開発しようとするも、それほど頻繁に開発するわけでもないので、つい忘れてしまいがちなのでメモ。

流れとしては以下のとおり
1. PHPで外部サイトのHTMLを取得
 ※これで同ドメイン内でのajaxとして利用可能になる
2. jQueryでajax

文字にすると簡単なのに、なぜこれを毎度毎度忘れてしまうのか…

続きを読む

【XSERVER】PHPでセッションが動かない時の確認

本blogはエックスサーバーで運用しているのですが、WordPressをインストールしないでPHPを動かそうとするとなかなか曲者です。
php.iniを編集しなければ使えない機能がいくつかあります。
とりあえず遭遇したのはメール送信とセッションです。

特にセッションは、かなり悩まされました。
実際に色々と調べてみたものの、どうにもうまくいきません。
今回、無事に解決しましたので、編集するポイントと内容を書いておきます。

続きを読む