
cronを定期的に処理を実行させることはよくあります。PHPの場合、
で(PHPの実行ファイルが/usr/bin/phpにある場合)ユーザ名:user_nameで、/var/www/html/hage/hoge.phpのphpファイルをPHPで実行させることができます。
同一PC内ならそれでもいいのですが、Cron機能が使えないサーバーのためWebアクセスをトリガーにしてで定型処理を行う必要があったためその方法についてです。
複雑で重くなった JavaScript を超超ちょ~~~高速化する方法。 - IT戦記にあるような寂しがり屋ライセンスっていいですね。オープンソースのライセンスとして、「利用するのはいいですよ。でも僕のブログにコメントしてね。」ってやつです。
オープンソースってことで人のソースを自分のソースに組み込むのは簡単になりましたが、ただコピペするだけでなくなにか一つ「使わせていただきます」「ありがとうございます」と一言コメントがあるだけで作者は次への制作意欲が沸くと思う。実際私も自分で書いたソースコードを公開しているが(「見られる」ということによって正しく理解しないといけないというプレッシャーを自分にかける意味でも)、公開したソースコードに対するコメントがあれば、とてもうれしいものである。
寂しがり屋ライセンス、そのうち当サイトでも使いたいです。
6 PHP coding tips to write less code | Alex @ Netにてlazy developerへPHPのコードを短く書くためのTipsが掲載されていましたので簡単に紹介しておきます。
1. Use || (or) and && (and) operations instead of if.(if文の代わりにand・orを使う)
が
に。DRYな感じに出来ます。これは知っている人も多いのではないでしょうか?
A and B→Aがtrue、ならばB
A or B→AがtrueでなければB(つまりAがfalseならB)
確かに以前こんなソースを見たことありますが、実際使う際は書き慣れた書き方になってしまう気もします。
2. Use ternary operator.(一時的なオペレータを使う)はよくやる手法ですね。
を
にします。
if文を使う場合に
を
とするのはバリデーションがらみの箇所でよく使いますね。
3. Use for instead of while.(while文の代わりにfor文を使う)
を
にしています。
ただ、for文の3番目の評価式に数値演算以外($i+=2など)を入れるのは個人的には嫌いだったりします。私の場合上の例でしたら
のようにしています(サンプルより2文字多くはなります)。
4. In some cases PHP requires you to create a variable. Some examples you can find in my PHP fluent API tips article. Another example is getting array element when array is returned by the function. (意訳:PHPはjQueryなどのようにメソッドチェーンが出来ないけど汎用関数を使えば出来るよ)
は
で書くことができます(関数aと関数rを定義)。使いどころによってはちょっと便利かもですね。
ってかpathifo($file_name)で連想配列に帰ってくるんですねぇ。今まで
などの関数を書いていました。。
1年以上前に作った作品にRSSリーダーがある。
セキュリティの問題が克服できれば公開しようと思っているのだがなかなか修正できないでいる。
今となっては普通だが、当時はAjaxの技術がまだ目新しく、CakePHPで1ヶ月以上かけて組んだのだが、おそらく今なら1週間ちょっとで作成できるであろう。
JavaScriptライブラリjQueryを用いた15パズルがありました。
http://www.alexatnet.com/node/68
jQuery、いいですね。prototype.jsがやはりデファクトですが、jQueryなどのような名前空間を汚さない配慮はいいですね。OOPを意識した作りになっているのでOOPに慣れている人は直感で入りやすいかもです。
TechTargetジャパン:mixiの生みの親“バタラ氏”が語るMySQLの意外な利用法
サービス開始から2ヶ月でユーザ数1万人を達成し、この3年で1110万人にも達したmixiのサーバー構成はLAMPで、安価なPCを1000台連ねる分散構成だそうです。
今更なんですが、使ってみると便利ですね・・・
何が出来るかというと、
元のサンプル(http://code.google.com/apis/ajaxfeeds/signup.html)だと、文字列だけしか表示してくれないんで、リンクになるよう簡単な変更をしてみました。
変更したサンプルにこのブログのRSSを投げてみると
となりました。。
Google先生、便利ですねぇ。
Fizz-Buzz問題というものがあるそうです(http://ja.wikipedia.org/wiki/Fizz-Buzz%E5%95%8F%E9%A1%8C)。
1~100までの数値をプリントして、3の倍数はFizz、5の倍数はBuzz、3と5の倍数はFizzBuzzと出力させる問題だそうです。
http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htmを見たのですが、「自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある」とあります。実際私はphpで上記の問題を解いてみたのですが2分弱で書けました。
2分弱というのはプログラムソースを書く時間なのですが、「ちょっと考えながら解を記述する時間」に等しいと思います。
上記の程度の問題でしたら私の中での「一般的なプログラマ」なら問題を見た瞬間に解は頭の中に存在すると思います。解を記述する際にfor文は1からだからphpなら$i=1から・・・などと考える若干のタイムラグが存在するかもしれませんがSystax Errorが出たとしても自称上級プログラマが10分以上かかるとは到底思えません。。
みなさんご存知だと思うんですが、phpの「strip_tags」関数で数種類のタグのみ許可する場合はXSS脆弱性が存在します。
どういうことかと簡単に説明しておきますと、
というsanitize関数を使えばstrongタグ以外は除去でき安全だと思いきや
で簡単にXSSが行われてしまいます。
じゃぁhtmlspecialcharsを用いてタグ全部をサニタイズすればいい!かと思いきやシステムによっては特定のタグのみ許可して危険なタグは除去。。といった場合も多いかと思います。