somemo's diary

プログラマ、雑記、プログラミング関係は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)を作成しました。ブリッジでない理由は…

【php】アクセス権

php

今更ですが、知らなかったのでメモ。 いきなり結論 他のオブジェクトからのアクセス権 同じ型のオブジェクト間では、たとえ同一のインスタンスでなくても お互いの private メンバーや protected メンバーにアクセスすることができます。 これは、そのオブジ…

【php】json_encodeが使えるバージョン

php

開発とリリース用のphpのバージョンが違っていて、お客様から不具合があがったことがあったのでメモです。動くバージョンは、5.2以上です!最近はデザイン面でもajax面でもjQueryを使うことが増え、json形式のデータを扱うことも増えたので覚えておきましょ…

【php】例外の発生履歴まで伝播する

php

仕事で独自の例外を作成しようとしたときに気づいたのでメモです。 タイトルの機能は5.3からの新機能です。今までは、例外の生成時にメッセージとコードを決定できましたが、事前に発生した例外を引数として渡すことができるようになりました。 例外情報の欠…

【php】エラー抑制演算子とisset

php

エラー抑制演算子(@)に関する興味深い記事があったので感想を書いて見ます。 エラー制御演算子(@) そもそも、エラー抑制演算子とはどう使えるのか? 値を得ることができるものの場合、@演算子を前に付けることが可能 上記より、@$cache[$key]とすることでkey…

【php】一時ファイル作成方法

php

一時ファイルの作成についてのメモです。

【php】cloudcontrolのサーバ変数の中身

php

http://cloudcontrol.com/developers/documentation/core-functions/read-only-file-system/によると、動的に生成されるファイルを格納するために$_SERVER['TMPDIR']が使えるようなので調べてみました。まずかったら、記事修正します・・・ また、同記事にMo…

【php】FirePHPでPHPプログラミングを便利にする方法【Firefox】

php

FirePHPでPHPプログラミングを便利にする方法を見た感想です。 感想 視覚的に確認できることはとてもいいことだと思います。しかし、コードに埋め込まなくてはいけないので、結局はログでいい気がしてきました。 使ってみたくなった時に入れて試そうと思いま…

【php】RSSの取得

php

今回は、phpでのRSS取得方法についてのメモです。 file_get_contentsでの方法 file_get_contentsで取得したデータをXMLオブジェクトに変換しています。プロキシサーバ経由の場合、データ取得時に設定しないといけません。

【php】エラー・例外のハンドリング【cakePHP】

php

エラーに関するまとめです。 ハンドリング関数 以下の2つです。 set_error_handler set_exception_handler set_error_handlerはエラーが発生した場合に、set_exception_handlerはキャッチされなかった例外を処理する関数・メソッドを指定します。 set_error_…

【php】cloudControllにMySQL系追加とアクセス制御【apache】

php

MySQLアドオンを追加する cctrlapp hellocc1ksomemo/default addon.add mysql.free cctrlapp hellocc1ksomemo/default addon mysql.free Addon : mysql.free Settings mysql_password : ********* mysql_max_connections : 2 mysql_dbsize : 5 mysql_databas…

【php】無料のPaaSサービス cloudControl【クラウド】

php

無料のPaaSサービスcloudControlの設定メモ(Windowsから)です。以下をもとに知りました。 PHPを使っているすべての人が知るべき無料のPaaSサービス | Act as Professional - プロとしての行為 cloudControlとは(上記から引用、引用タグのお勉強) 1時間あたり…

【php】オブジェクトのクラス名を取得する

php

string get_class ([ object $object = NULL ] ) 指定したオブジェクトのクラス名を取得します。 オブジェクトを指定しなかった場合、get_classを実行したクラスの名前を取得できます。 親クラスのメソッドで実行されていた場合、オブジェクトを指定しないと…

【php】メンバ変数定義時の初期化

php

タイトルについて。 phpでは、定義時の初期化に演算子や関数を使用できないようです。 http://www.php.net/manual/ja/language.oop5.properties.phpより コンパイル時に評価可能な値でなければならず、 実行時の情報がないと評価できない値であってはいけな…

【php】privateメソッドのテストをする

php

PHPUnitでprivateメソッドをする方法のメモ。 これを実現するには、phpのリフレクションを使用します。 参考: PHPでリフレクション 上記に含まれるWiki(リフレクション (情報工学)を参照 ソースコード

【ツール】phpからgrowlで通知(Windows)【php】

php

アプリケーションの通知を行うgrowlをphpから実行する方法についてのメモ。 1.インストール 下記URLからダウンロードし、インストールします。 http://www.growlforwindows.com/gfw/default.aspx 日本語化のために、下記URLからパッチ?を適用します。 htt…

【php】memcached(windows)のインストール

php

memcachedのダウンロード: 本家:http://memcached.org/(Windows用は無い) 1.2.4:http://www.splinedancer.com/memcached-win32/ 1.2.6:http://code.jellycan.com/memcached/ 1.4系:http://labs.northscale.com/memcached-packages/(よく紹介されている…

【php】クラスのオートロード

php

クラスを使う際には、そのクラスが記載されているファイルを読み込まなければなりません。 ファイルの読み込みにはinclude系またはrequire系を使用します。 ただし、ファイルの量が多くなればなるほど、読み込み処理の記述が増えます。 また、未定義のクラス…

【php】配列とオブジェクトの変換

php

気になったので試してみた。 pubVar1 = $pubVar1; $this->priVar1 = $priVar1; $this->proVar1 = …

【php】セッションIDの自動付加

php

携帯対応サイトで急にセッションからデータが取れなくなったときがあったのでメモ。 「セッションの自動付加について」 php.iniの「session.use_trans_sid」の値が1である場合、 相対URI指定している リンクのhref属性の末尾に?PHPSESSID=~~ フォームの子…

【php】携帯サイト用文字化け・文字変換2

php

今回の文字変換は、半角カタカナから全角カタカナにする方法。 http://ratememo.blog17.fc2.com/blog-entry-536.html 上記で扱ったmb_convert_kanaのオプションを変更するだけです。 mb_convert_kana(文字列, オプション, エンコード) ⇒オプション:「KV」 …