PHPでリンク先が存在するかどうかを調べるのは非常に簡単です。
<?php
$url = "http://www.yahoo.co.jp";
if($fp = fopen($url, "r")){
while ($tmp = fgets($fp)) {
print $tmp;
}
}else{
print "リンク切れです";
}
?>
これを応用すれば別のサーバのデータを取得できたりもするので便利ですね。
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かも。
特にレンタルサーバーでコマンドライン操作ができない時には非常に便利です。
ぜひ使ってみてください。
私はオープンソースを眺めるのが好きです。なんといっても実力者のソースを見ることで自分のスキルもアップすることができるからです。
例えば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);
って感じでしょうか。もっと簡単な方法あると思いますが・・・。