somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

php

【php】異なるバージョンのインストール【Mac】

php

Macにしたので、Windowsのときよりphp5.4を気軽に試せるようになりました。しかし、実際に使うとなると5.3または5.2であることが多いです。そこでバージョンの切り替えを簡単に行えるようにしようと思いました。 ツールを使わない方法 環境変数PATHを修正し…

【php】APCのインストール【Windows】

php

phpならAPCを導入してパフォーマンスをあげるのは当たり前というのをよく耳にします。今回は、BEAR.Sundayを使うために必要になったので、Windowsにインストールする方法を調べました。 APC APCの概要がhttp://www.php.net/manual/ja/intro.apc.phpに記載さ…

【php】アルゴリズムの勉強に必要な知識や設定

php

最近、アルゴリズムの勉強を始めました。参考書籍はアルゴリズムを学ぼうです。 間違いがけっこうあるので、公式・非公式の正誤表を見てください。 AMW|正誤・FAQ・追加情報の検索(アルゴリズムを学ぼう) アルゴリズムを学ぼう サポートページ(非公式) PHPU…

【php】composer使ってみた

php

前々から使おうと思っていたcomposerを使ってみました。 composer 一言で言うと、パッケージ管理ツールです。プロジェクトごとに管理できるようになっているので、複数のプロジェクトで使うときにも便利です。 インストール composer自体をインストールしま…

【php】preg_match【正規表現】

php

パラメータ付きルーティングを作成するために、preg_matchで正規表現のおさらいをします。 REST よく目にしますね。URIで何を示しているか、リソース志向であったり、RESTfullなど関連する言葉も多数あります。 自分が最初に感じたのは、URIに対してとても直…

【php】それぞれの役割分担

php

タイトルどおり、前回(【php】レイアウト読み込み処理の切り出し)にも述べたクラス化を行いました。 クラス化とコントローラーの実装 前回と比較してみてください。

【php】レイアウト読み込み処理の切り出し

php

前回、レイアウトの共通部分を別ファイルに切り出しました。ただし、可変部分を変数に格納し、その変数を使用する別ファイルを読みこむ処理を記述する必要があります。 リクエストの処理 上記を改善するとなると、可変部分を記述したファイルを別の場所で読…

【php】レイアウトの共通化

php

phpで久し振りにフレームワークを使わずに書いて、不便だと思った部分をフレームワークにしていき、勉強しています。参考はパーフェクトphpです。 題材はチャットです。ロビーから部屋入口にはいり、さらに部屋へという構成にしようと思っています。 レイア…

【php】jsonを扱うときのContent-Type

php

JSONのContent-Typeは「 text/javascript 」でなく「application/json」で。 – FlatLabsだそうです。こうすることによってjsonであることを認識できるようになります。指定しない場合、text/htmlとして扱われるため、JavascriptでevalしないとJSONとして扱え…

【php】php-fpmのインストール

php

php5.4とnginxをインストールしたので、php-fpmをインストールしてみました。 インストール yumでインストールしました。php5.4をremi-testからインストールしたので、同様にリポジトリを指定しています。 yum --enablerepo=remi-test install php-fpm イン…

【php】5.4をyumでインストール

php

そろそろ入れたいけど、面倒なのは嫌だなと思い「php5.4 yum」でぐぐったらあるとのことなので、入れてみました。 リポジトリの設定 今回はCentOS6.2にインストールします。これには、リポジトリの設定をしていないのでまずここからはじめます。 http://fedo…

【php】クエリストリングに関する関数

php

クエリストリングを配列から生成する関数と、クエリストリングから配列を生成する関数についてのメモです。 クエリストリングということに着目すると、impledeやexploeより便利になります。 http_build_query クエリストリングを配列から生成する関数です。…

【php】名前空間

php

名前空間を使用するソースをよく見るようになったので、気をつけておかなければならないことをまとめておきます。 名前空間 英語ではnamespaceと呼ばれています。名前のバッティングを防ぐための空間・領域という覚え方が一番しっくり来ると思います。5.3以…

【php】クラス外でのconst

php

5.3からクラス内でなく、外でもオブジェクト定数constを定義できるようになっていたみたいです。クラス外の定数定義defineと同じ名前をつけるとどうなるのか試してみました。 結果 まずは、defineしてからconstした場合です。C:\に、script.phpという名前で…

【php】同一セッションのリクエスト処理

php

あとで検証してみる。 ajaxではリクエストを並行で飛ばすが、「同一セッションのリクエストは順に処理される」というPHPの仕様により、レスポンスも順に処理される。

【php】Excelの表をHTMLテーブルに変換する

php

ブログ用にテーブルを整形するのが面倒なので、phpで書いてみました。FC2はリアルタイムプレビューもあるのですが、修正が面倒なためです。 TSVをHTMLテーブルに変換 Excelの表ををコピーした時にTSV形式になるので、その形式に対応できるようにしています。…

【php】htmlspecialchars

php

今更ながら、htmlspecialcharsについてのメモです。 htmlspecialchars php開発者ならXSS対策に必ず使っている関数だと思います。変換対象は、以下の通りです。 変換対象となる文字は以下の通りです。 '&' (アンパサンド) は '&' になります。 ENT_NOQUOT…

【php】simplesamlのインストール

php

シングルサインオンを実現するためのフレームワークらしい、simplesamlphpのインストールメモです。 インストール wget http://simplesamlphp.googlecode.com/files/simplesamlphp-1.8.2.tar.gz tar zxfv simplesamlphp-1.8.1.tar.gz mv simplesamlphp 任意…

【php】zlibのインストール

php

phpizeを使用してzlibをインストールした時のメモです。 phpize~make install お決まりの流れなので軽く説明します。 cd /phpのソースディレクトリ/ext/zlib phpize ./confiugre --with-zlib make make test make install いきなりですが、phpizeで詰まりま…

【php】HTTP_Requestクラス

php

PEARのHTTP_Requestクラスの使用方法のメモです。 取得例 googleに対してPOSTメソッドでリクエストを送りました。 setMethod(HTTP_REQUEST_METHOD_POST); //リクエスト $http_req->sendRequest(); //…

【php】xmlデータの作成【DOMDocument】

php

DOMDocumentを使用してXMLデータを作成する方法のメモです。 DOMDocument DOMをあらわすクラスです。このクラスはDOMNode クラスを継承していて、これ自体も要素を現すようになっています。 例 top_level要素に、配列で作成した子要素を追加する例です。 enc…

【php】拡張モジュールの動的作成【phpize】

php

phpをソースからコンパイルした場合、あとから必要なモジュールを組み込むとなると再度コンパイルする必要があります。コンパイルをせずに拡張モジュールを組み込むためにphpizeを使用します。 phpize ソースからphp5.3.8をコンパイルした際にはインストール…

【php】ソースからのインストール【Linux】

php

phpもMySQL同様ソースでのインストールは初めてなのでメモしておきます。 ダウンロード http://www.php.net/downloads.phpから5.3.8をダウンロードします。 インストール ダウンロードしたファイルを展開します。 cd /usr/local/src tar zxfv php-5.3.8.tar.…

【php】イテレータ【パターン】

php

イテレータパターンを学んで気になったときのメモです。 イテレータの印象 phpでは気軽に配列を使用できるため、何も気にせずオブジェクトを格納して利用することが多いです。Javaのようにただの配列、可変長のリスト、連想配列(Map)を区別する必要がなく、…

【php】BOM付きUTF8ファイル

php

phpに限ったことではないと思いますが、BOM付きファイルを処理するとBOMがでます。 FireBugから選択してコピーして、エディタに貼ると、FFFEが表示されます。BOMなしで保存することで解決しました。

【php】オブジェクトをキーにデータと関連付ける

php

タイトルどおりです。JavaのHashMapのようにオブジェクトをキーにすることができるデータ構造がphpにもありましたので、試しました。 SplObjectStorageクラス このクラスがphpで実現するためのものです。5.3以降でないと使えないですが、とても便利です。 テ…

【php】オブジェクトの比較

php

オブジェクトの比較について調べてみました。結論としては、参考のマニュアルどおりです。 テスト用コード オブジェクトの比較用に以下のテストコードを作成しました。といってもTDDからの抜粋です。 public function testPairEquals() { $p1 = new Pair('US…

【php】Phingのインストール

php

プロジェクトビルドシステムのPhingをインストールします。 Phing Phingは、Apache Antを元にして作られているプロジェクトビルドシステムです。 AntはJavaソースをコンパイルする操作を設定ファイルに書き、その操作を自動化することができます。行ったこと…

【php】(連想)配列から変数を作成する

php

MVCフレームワークにおけるVIEWで使える変数は、どうやって使えるようになっているのか?という疑問の終着点がタイトルだったのでメモしておきます。 symfonyではAction内で$this->変数名、cakePHPではController内での$this->set('変数名', 変数)と書くこと…

【php】5.2.xのインストール

php

ローカルの開発環境しかなく、開発サーバでしか開発でない案件に久しぶりに携わることになりましたので、ローカルに環境を作ることにしました。 環境 WindowsXPのVMWare Server2にNAT環境でつないだサーバ(CesntOS5.6)を作成しました。ブリッジでない理由は…