アーカイブ

‘php’ カテゴリーのアーカイブ

【CodeIgniter】さくらのレンタルサーバにCodeIgniterを入れてみた

2010 年 11 月 27 日 コメントはありません

最近CodeIgniterでとある団体のホームページを作ることになりました。
サーバはどうしようかな~と考えましたが、今後も大きくなりそうなのでさくらのビジネスプロに決定!

ってなわけでまずはさくらのレンタルサーバにCodeIgniterをぶち込むことから始めます。

1.CodeIgniterダウンロード
まずは下記のリンクからCodeIgniterをダウンロード(2010/11/26現在のversionは1.7.2)して解凍します。
http://codeigniter.com/downloads/

2.FTPでアップロード
さくらのレンタルサーバへ解凍したフォルダごと/home/xxxxx/www直下にアップロード。

3.Teratermでログイン
cshが使いにくすぎるのでとりあえずbashにしました。
参考:http://www.hazama.nu/t2o2/archives/002697.shtml
落ち着いたらzsh入れます。

4.Config直下のファイルを編集
さくらの環境に合わせてデータベース等の設定ファイルを編集します。

5.vimインストール
なんと(いや普通か)vimが入ってなかったので、インストールしました。
参考:http://dameninngenn.sblo.jp/article/35264757.html

※上記のサイトだとパスを通していないため、.bashrcに下記を追記。

PATH="$PATH"":$HOME/local/bin

6..htaccess設定
さくらのレンタルサーバだとURLルーティングに癖があるらしいので下記のサイトを参考に.htaccessを設定
参考:http://d.hatena.ne.jp/mcatm/20090415/1239807899

ちなみにこんな感じです。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(index\.php|css|robots\.txt|js|images)
RewriteRule ^(.*)$ /index.php?/$1 [L]

7.動作確認
適当なcontrollerとviewを用意して動作確認。
おお!普通にいけた。
Symfonyのときはさくらに随分泣かされたのでちょっと感動。

これで開発できる環境が整ったので、一気に仕上げるぞ~

カテゴリー: CodeIgniter, php タグ:

[CodeIgniter]URLのindex.phpを消す

2010 年 9 月 12 日 コメントはありません

CodeIgniterにおいてURLにデフォルトで含まれるindex.phpを消すには、以下の内容を.htaccessに記述し、ドキュメントルート直下に配置すればOKです。

  1.  RewriteEngine on
  2.  RewriteCond $1 !^(index\.php|css|js|images)
  3.  RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteCondの値は必要に応じて適時追加してください。

カテゴリー: CodeIgniter, php タグ:

[php]変数を用いてconstの値を取得する

2009 年 5 月 13 日 コメントはありません

変数を用いて定数、メソッドを呼ぶ方法をメモ。

まず以下のようなクラスを考える。

  1.  <?php
  2.  class Hoge {
  3.    const bar = "uho";
  4.    static pubilc function boo($v) {
  5.      echo $v;
  6.    }
  7.  }
  8.  ?>

定数を抜き出したい場合はcall_user_funcではなく、constantを用いて

  1.  <?php
  2.  $model = "Hoge";
  3.  echo constant($model."::bar");
  4.  // uho が出力される
  5.  ?>

とすればOK。

逆にスタティックメソッドを呼び出したい場合は

  1.  <?php
  2.  $model = "Hoge";
  3.  echo call_user_func(array($model, "boo"), "test");
  4.  // test が出力される
  5.  ?>

のようにすればOK。

カテゴリー: php タグ:

[PHP]日本語の文字列を綺麗に抜き出す

2008 年 11 月 5 日 コメントはありません

今回はPHPの文字列操作ではまったネタをメモ。

文字列から数文字抜き出す時に、2バイト文字(日本語)を1バイトで抜き出してしまうという問題。

結論から言うとmb_substrの前にmb_language,mb_internal_encodingを指定してあげると綺麗に抜き出せるらしい。

  1.  //文字コード設定
  2.  mb_language("Japanese");
  3.  
  4.  mb_internal_encoding("EUC");
  5.  $str = "ほげほげhogehogeうほうほuhouho";
  6.  
  7.  //最初から10文字を切り抜く
  8.  $str = mb_substr($str,"0","10");
  9.  echo $str;</td>

出力結果は以下

  1.  // 結果
  2.  ほげほげhogeho

となる。

mb関連の関数は勝手にマルチバイトに対応してくれると思ったら、そうでもなかったというオチ。

設定ファイルとアプリケーションの内部エンコーディングが同じだったら追加する必要はないかも。

カテゴリー: php タグ: ,

[PHP]iモードIDを調べてみる

2008 年 4 月 1 日 コメントはありません

2008/3/31にdocomoは一般サイトでもユーザ情報を活用したサイトを制作できる「iモードID」の提供を開始した。

詳しくは以下から
CNET JAPAN:「iモードID」が提供開始、一般サイトでもユーザー情報を取得可能に

ってなわけで自分の携帯のiモードIDが何なのかが知りたくて早速プログラムを作ってみた。

docomoの携帯で以下のサイトにアクセスすれば、画面にそ携帯のiモードIDが表示される。

imodeID check:http://www.y2-space.com/www/program/imodeID.php?guid=ON

携帯ということでQRコードも作ってみた。
QR_Code.jpg

<?php (empty($_GET[“guid”]) || $_GET[“guid”] != “ON”) ? header(“Location: http://www.y2-space.com/www/program/imodeID.php?guid=ON”) : print (isset($_SERVER[“HTTP_X_DCMGUID”])) ? $_SERVER[“HTTP_X_DCMGUID”] : “none”; ?>

と一行ですんだ。要はguid=ONをgetやらpostやらで渡して拡張ヘッダにて取得するらしい。

実際にやってみたがランダムの英数字7桁だった。

しかしまぁ、ヘッダは偽造できるから使うにはセキュリティ対策は万全にしないといけないかもw

参考サイト:作ろうiモードコンテンツ

カテゴリー: imode, php タグ:

[PHP+Ethna]vistaにEthnaを入れてみる(2) ~Ethnaの導入~

2008 年 3 月 17 日 コメントはありません

ってなわけで今回は実際にEthnaをvistaにぶち込んでみる。

・パスの設定

Ethnaをインストールする際、PHPのPEARコマンドを使うのでPHPがインストールされているフォルダへのパスを通す。

Cドライブの直下に作成した場合は;C:¥xampp¥phpをシステム環境変数のPathに追加すればいい。

追加したら確認のためにコマンドプロンプトで


C:¥>pear

と入力してエラーが出ずにPEARコマンドのヘルプ一覧が表示されれば成功。
WS000009.JPG

・Ethnaのインストール

まずはPEARを最新の状態にするために以下をコマンドプロンプトに入力する。


C:¥>pear upgrade-all

何も出なかったら最新の状態なので大丈夫っぽい。

次にチャンネルサーバーを設定。


C:¥> pear channel-discover pear.ethna.jp

んで次にEthnaをインストール


C:¥> pear install ethna/ethna

これでEthnaのインストールは完了。もしチャネルサーバがうまくいかなかった場合は


C:¥> pear install http://ethna.jp/pear/ダウンロードするEthnaのファイル名

でいけるらしい。

・DB,Smartyのインストール

EthnaはPEAR_DBとSmartyに依存しているらしいのでこの2つをインストールしないといけない。

C:¥>pear install DB

と入力すればOK。

しかしSmartyはPEARのライブラリじゃないので自分で以下の公式サイトからダウンロードする必要がある。

Smartyhttp://smarty.php.net/

ダウンロードしたら解凍してその中にlibsというフォルダがあるので、名前をSmartyに変更してPHPのライブラリディレクトリ内にコピーする(同じようにやってきた人はC:¥xampp¥php¥PEARの下に作成すればOK)。

あとはEthnaとバッチファイルにPEARのときと同様にパスを設定してプロジェクトを作成したい場所で

$ ethna add-project プロジェクト名(ここではsampleという名前にする)
($はカレントディレクトリのパス)

と入力すると

creating directory (パス/sample) [y/n]

と表示されるので、yと入力すれば一気にプロジェクトが作成される。

windowsでは標準でシンボリックリンクが作成できないので作成されたwwwという名前のフォルダの
中身をプロジェクト直下にコピーするか、直接wwwにアクセスするかの2パターンがある。
面倒くさいのでここではwwwに直接リンクすることにする。

あとはwwwフォルダ内のindex.php,info.php,unittest.php,xmlrpc.phpの4つのファイルのパスが

require_once ‘C:¥パス¥sample2/app/sample2_Controller.php';

となっているのを


require_once ‘C:¥パス¥sample2¥app¥sample2_Controller.php';

に変更するだけ。

ブラウザで確認したいときはC:¥xampp¥htdocsの直下がhttp://localhost/に相当するので
htdocsに移動してプロジェクトを作成すれば手間が省ける。

例えばhtdocs以下にsampleというプロジェクトを作成すると、ブラウザでは

http://localhost/samle/www/

とurlに入力すればOK。

うまくいってれば以下のような画面が表示される。

WS000010.JPG

これで一応はvistaでethnaを動かせることができた。
めでたし、めでたし☆

カテゴリー: ethna, php タグ: ,
Get Adobe Flash player