Sponsored Link

PHPの最近のブログ記事

PHPでリンク先が存在するかどうかを調べるのは非常に簡単です。

<?php
$url = "http://www.yahoo.co.jp";
if($fp = fopen($url, "r")){
	while ($tmp = fgets($fp)) {
		print $tmp;
	}
}else{
    print "リンク切れです";
}
?>

これを応用すれば別のサーバのデータを取得できたりもするので便利ですね。

<?php
$path = dirname(__FILE__);
print $path;
?>

mb_internal_encoding("UTF-8");

 

実はこんなことで1時間もハマってしまいました(TT)

InkTypeはPHPで作られたCMSです。すでに日本語化もされています。
興味をもったきっかけはフレームワークにCodeIgniterを使っていることがきっかけです。

インストール方法です。

①公式サイトからファイルをダウンロード
http://www.inktype.org/

②解凍する

③データベースの作成
 MySQLでデータベースを作成(データベース名は任意。僕は「inktype」にしました)

④PhpMyAdminなどを使って解答されたフォルダの直下にあるinktype_uranus_1_install.sqlを使ってテーブル等を作成する

⑤/system/application/config/config.phpをテキストエディタで開く
 14行目あたりの 

$config['base_url']	= "";
 に絶対URLを入れる(必ずhttp://から入れてください。例: http://hogehoge.jp/inktype/)

 69行目あたりの 

$config['language']	= "english";
 を 
$config['language']	= "japanese";
 に変更(日本語化されます)

⑥/system/application/config/database.phpをテキストエディタで開く

 40行目あたりの 

$db['default']['hostname'] = "";
$db['default']['username'] = "";
$db['default']['password'] = "";
$db['default']['database'] = "";
$db['default']['dbdriver'] = "mysql";

にデータベース情報を追加
例 

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "user";
$db['default']['password'] = "pass";
$db['default']['database'] = "inktype";
$db['default']['dbdriver'] = "mysql";

⑦/system/application/viewes/templates/default/header.phpをテキストエディタで開く
7行目あたりの

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 に変更

⑧ファイルをFTPなどでアップロード
アップロードしたフォルダ名をinktypeと仮定します。

⑨ブラウザでアクセスしてみる
例 http://hogehoge.jp/inktype/
とりあえずページが見ることができるようになります。

⑩管理画面にアクセス
例 http://hogehoge.jp/inktype/index.php/admin/admin/
最初はメールアドレスとパスワードを入力してユーザー登録して管理画面に入ります。

⑪あとは記事を書いたりして色々ためしてみよう!!

最近知ったPHPフレームワークのCodeIgniterですが、これが非常に使いやすい。
簡単で最低限必要な機能は揃っています。

Symphonyもいいけど手ごろさでいえばやっぱりCodeigniterかも。

特にレンタルサーバーでコマンドライン操作ができない時には非常に便利です。

ぜひ使ってみてください。

CodeIgniter本家

日本CodeIgniterユーザ会

私はオープンソースを眺めるのが好きです。なんといっても実力者のソースを見ることで自分のスキルもアップすることができるからです。

例えばOpenPNE非常に巨大なシステムですが、よく整頓されておりソースを理解することで自然とPHPのスキルを高めることができます。

ではPHPで学べるスキルをあげてみます。


・クラスの基礎知識(オーバーライドなど)
・デザインパターン(特にシングルトン、テンプレート、ファクトリー、アダプターなど)
・フレームワークの効果(便利さ)
・セキュリティ対策
・Pear


など挙げるときりがありません。

例えばPerlだったらMovableTypeを眺めてみるとかもいいでしょうね。

インストール備忘録です~。再度インストールするときに便利ですよね。

OS  CentOS5(フルインストール)


Symfonyのインストール

pear channel-discover pear.symfony-project.com
pear install symfony/symfony

まずはMySQLのインストール

yum -y install mysql-server

必要なものをもろもろインストール

yum install php-mysql php-xml php-pear

Mysql起動

/etc/rc.d/init.d/mysqld start

自動起動設定
chkconfig mysqld on

一応確認
chkconfig --list mysqld

公開ディレクトリ内(/var/www/html/)に新たにプロジェクトディレクトリを作成(セキュリティ無視)

mkdir symfonytest

そのディレクトリに移動

cd symfonytest

プロジェクト作成

symfony init-project symfonytest

アプリケーション作成

symfony init-app test


サイトにアクセスして画像が表示されないときはシンボリックリンクをはる

ln -s /usr/share/pear/data/symfony/web/sf /プロジェクトディレクトリ/web/sf

これでひと段落ですね。

1日前などを算出する関数です。さすがPHPです。便利な関数ありますねえ。Perlだとこれよりちょっとだけ複雑な作業がいるんですよ。

print date("Ymd",strtotime("-1 day"));   //1日前
print date("Ymd",strtotime("-1 week"));  //1週間前
print date("Ymd",strtotime("-1 month")); //1月前
print date("Ymd",strtotime("-1 year"));  //1年前
//
print date("Ymd",strtotime("1 day"));    //1日後
print date("Ymd",strtotime("1 week"));   //1週間後
print date("Ymd",strtotime("1 month"));  //1月後
print date("Ymd",strtotime("1 year"));   //1年後

結構便利です。


これをPerlで実現してみると

$days = 1;  //○日前を指定
($sec, $min, $hour, $day, $month, $year, $wdy, $yday, $isdst) 
= localtime(time-24*60*60*$days);
$year += 1900;
$month++;
print sprintf("%04d%02d%02d",$year,$month,$day);

って感じでしょうか。もっと簡単な方法あると思いますが・・・。