タグ別アーカイブ: PHP

BASHの脆弱性でCGIモードで動いてるPHPにアレさせてみました

タイトルはパクリ
元記事: BASHの脆弱性でCGIスクリプトにアレさせてみました – ブログ – ワルブリックス株式会社

sakura のレンタルサーバが cgi モードで php 動かしてるよなーと思ってテストしてみたらできました。
# テストスクリプトは削除済みです。
続きを読む

WordCamp Tokyo 2012

WordCamp Tokyo 2012 と PHP Conference 2012 に行ってきました

9/15 に大田区産業プラザ PiO で合同開催された WordCamp Tokyo 2012PHP Conference 2012 に行ってきました。
新しい試みのブースも盛況で、中々楽しかったです。
僕はというと PHP カンファレンスの方で「NGINX + PHP」ってセッションをやらせていただいたり(開始時、ぐだぐだになってしまいすいません)、WordCamp Tokyo 2012 の方で「AWS ハンズオン」のお手伝いをさせていただいたりしてました。

PHP カンファレンスでやったセッションのスライドはこちら

回を重ねる毎にドンドン大規模になって行くイベントですが、大きな混乱も無く、今年も非常に楽しかったです。
スタッフとして関わった方々、お疲れさまでした&ありがとうございました。

Codeigniter の言語クラスで gettext を使えるようにする

最近、ちょっと訳あって Codeigniter をいじってます。
すでに PHP が分かっていれば、学習コストも低く、直感的に使えるんでなかなか良いっすよ。

Codeigniter で、国際化するために用意されてる言語クラスですが、通常は以下のようにして使います。

application/language ディレクトリに各言語のサブフォルダ(例:japanese)を用意する。

その中に _lang.php (例:error_lang.php) というファイルを作成して、連想配列 $lang にテキストをセットする。

$lang['language_key'] = "実際に表示されるメッセージ";

Controller で言語ファイルを読み込む。

$this->lang->load('filename');

lang オブジェクトの line メソッドか、lang() 関数で、キーを指定してテキストを取得する。

$message = $this->lang->line('language_key');
// または
echo lang('language_key');

ただ、これだとキーとの対比とか、メンテナンスがめんどくさいので、できれば .mo ファイル作って gettext() で処理したい所です。
続きを読む

WordPress on PHP5.4.0 RC4 + APC

明けましておめでとうございます。本年も、よろしくお願いいたします。

スクリーンショット(2012-01-03 11.15.50)さて、パフォーマンスアップしたと噂の PHP 5.4 系。
WordPress も、ちゃんと動くんかいな?と思って試してみました。
使用しているプラグインによっては問題が出てくるかもですが、とりあえずデフォルト状態の WordPress 3.3 + TwentyEleven では問題なさそうです。
あと、このサイトで使ってるプラグインでも問題は発生しなかったようです。

ちなみにこのサイトで使ってるプラグインの一覧は以下の URL で見ることができます。
https://dogmap.jp/plugins/3/
続きを読む

WordPressで、1つの投稿を2つのフォーマットで出力(URLも別)とかできたりしないだろうか。

パラメータでシングルページのテンプレートを変更

WordPressで、1つの投稿を2つのフォーマットで出力(URLも別)とかできたりしないだろうか。WordPress で与えられたパラメータによって、シングルページで適用するテンプレートを変更する方法。
Eri さんが、こんなことを言っていたのでサクッと作りました。
話を聞くと、通常の表示ページの他に印刷用のページを用意して、見た目をガラッと変えたいとのこと。

例えば、パーマリンクが http://example.com/archives/1 の場合、http://example.com/archives/1?type=print にアクセスすると、テンプレートとして single.php を読み込む代わりに single-print.php を読み込ませたい。
これは single_template というフィルターフックを利用して、通常とは違うテンプレートを読み込むようにすることで対応できます。
続きを読む

匿名関数と無名関数 (PHP Advent Calendar 2010 16日目)

shin1x1 さんから、開始された PHP Advent Calendar jp 2010 16日目です。

書くTipsは、10分で考えて、5分で書ける内容で ok です。

とのことなので、さらっと。

PHP5.3から導入された無名関数って、5.2以前からある匿名関数とどうちがうの?ってお話。
続きを読む

さくらVPSに lighttpd + PHP 5.3 + MySQL 5.1 をインストール

さくらのVPSのお試し期間を使って、色々試してみたので、メモ。
初期設定とかは、hiromasa さんのエントリを参考に。

今回の構成は、Web サーバ lighttpd 、PHP 5.3.x、MySQL 5.1.x で WordPress を動作させるところまでやってみます。
続きを読む

め組VPSに移行後に設定した項目

さくらの共用サーバから、め組のVPSに移行した際に設定した項目のメモです。
大まかにはこんな感じ

続きを読む

WordPress ShortCode Plugin Builder

ショートコードAPIを使用した WordPress 用プラグインを半自動生成する『WordPress ShortCode Plugin Builder』を作ってみました。
これを使用すると WordPress 2.5 で新しく追加されたショートコード API機能を利用したプラグインを簡単に生成することができます。
100SHIKI さんで紹介されていた『Widgetifyr』が、興味深かったのでインスパイアされたものです。
# 『Widgetifyr』は実際には使用していないので、仕様が違うかもしれませんが、まぁ良しとしてください。
続きを読む

Now On Air

以前、@miyabi_s さんに、FM京都のオンエア曲を Twitter に自動投稿する仕組みは無いものかと聞かれて、「オンエア楽曲検索を、スクレイピングして RSS フィードを作ってやればいいんじゃね?」と答えたことがありました。
ちゃちゃっと PHP でサンプルプログラムを作って渡したんですが、そのプログラムを利用して FM-NIIGATAFM PORTZIP-FM のオンエア曲を提供する bot を作成したので、ご紹介。

今回、作成したのは以下の4つのアカウントです。

動作原理を簡単に説明すると

  1. 各FM局公式サイトの「オンエア楽曲検索」をスクレイピングしてRSSフィードを作成
  2. cron で定期的にRSSフィードを確認して、新しい情報があれば Twitter に投稿

となります。

自前のサーバで cron 実行せずに twitterfeed.com などの外部サービスを利用したい時、移行が簡単になるようにわざわざRSSフィードを作成しています。
さて、ではプログラムの簡単な説明。
続きを読む