[PR] Galaxy Ranking 一押しサイト→→ ♪楽天infoseek♪ [PR]

Galaxy Ranking

Top Page
Information
新規登録
  登録規約
  参加用バナー
  登録変更
クリック募金
募金リンク
PHP Lab
WEB RANKING
ホームページを作る
Homewith.net
ロリポップ!
管理者情報
total: 1,234,706
登録サイト数: 263
since 2001/03/10
PHP Laboratory
PHPとは
PHP(参照)とは、サーバーサイドで実行されるスクリプト言語です。
HTML文書に動的効果を与えて表示することが出来ます。
また、CGIとして利用されるPerlよりも立ち上がりが早いことと、
各種データベースとの連携に遊離であることが一般には知られています。
そして、普及しているPerlよりも一般に記述が容易です。
PHPはHTMLファイルに、HTMLと混在させて書くことも出来ます。

PHPは、PHP: Hypertext Preprocessorの略です。最初のPには実は意味がありません。
PHPの記述方法
PHPスクリプトは、.php,.phtmlファイルに記述するのが普通ですが、
.htaccessなどで
AddType application/x-httpd-php .htm .html
として指定すれば.htm,.htmlファイルに記述してもPHPスクリプトを実行できます。

PHPスクリプトは、
<?php
  //内容が無いよう
?>

として、必ず"<?"で始めて"?>"で終わります。
また"//"以降の一行はコメントアウトです。そこら辺は他の言語と大体一緒です。
サンプルでは"<?php"で始めていますが、"php"を書かなくても大丈夫です。
PHPはそこら辺とてもアバウトでテキトーです。

また.phpファイルや.htmファイルにPHPとHTMLを共存させるには以下の方法があります。
<?php
  //内容が無いよう
?>
<html>
<body>
  <!--内容が無いよう-->
</body>
</html>

このサンプルではPHPを先に実行して、後にHTMLの表示を行います。
これによって何が出来るかというと・・・
普通Perlではフレームを用いたアクセス元解析ではJavaScriptを使用しますが、
PHPを使えばフレームを用いたファイルにPHPを記述できるのでJavaScriptを必要としません。
また以下のようにHTMLの中でPHPを記述できます。
<html>
<body>
  <!--内容が無いよう-->
  <?php
    //内容が無いよう
  ?>
</body>
</html>

このサンプルでは、HTMLの文書中にPHPスクリプトの実行結果が表示されます。

また、PHPはHTMLファイルから呼び出すことも出来ます。
<?include("./php/counter/counter.php");?>
またWeb上の絶対アドレスで呼び出すことも出来ます。
<?include("http://www.galaxyranking.net/php/counter/counter.php");?>

ただしこの2つでは、PHPスクリプトから見るログファイルの扱いに違いがあります。
上ではログファイルのアドレスは、呼び込みもとのHTMLファイルからの相対アドレスになります。
下では実行されたPHPスクリプトファイルからの相対アドレスです。
上の形ではURLに引数を与えられません。(というかURLじゃない)
また下の形では、$_SERVER関数が正しく得られない場合があります。
PHPサンプルスクリプト
counter.php
<?

//呼び込み元からの相対アドレス

$log = './php/count/count.log';
//日付を格納
$date = date("d");
//データファイルを格納
$dat = file($log);
//データファイルから各変数へ格納
list($count, $yes, $to, $day, $ip)=explode("<>", $dat[0]);

//重複IPチェック

if($ip != $_SERVER['REMOTE_ADDR']){
  $count++;
  if($date == $day){
    $to++;
  }
  else{
    $yes = $to;
    $to = 1;
    $day = $date;
  }
$new = implode("<>", array($count, $yes, $to, $day, $_SERVER['REMOTE_ADDR']));
$fp = fopen($log, "w");
flock($fp, LOCK_EX);
fputs($fp, $new);
fclose($fp);
}
//桁コンマをつけて出力
echo number_format($count);

?>

manage.php
<?


//こっちはURLで指定したのでPHPファイルからの相対URL
$log = './count.log';
$date = date("d");
$dat = file($log);
//URL引数を得ます
$mode = $_GET['mode'];

list($count, $yes, $to, $day, $ip)=explode("<>", $dat[0]);

switch($mode) {
  case "yes":
    echo number_format($yes);
    break;
  case "to":
    echo number_format($to);
    break;
  default:
    echo number_format($count);
    break;
}

?>


URL引数は
<?include("http://www.galaxyranking.net/php/counter/manage.php?mode=yes");?>
のように与えることが出来ます。
<?include("./php/counter/manage.php?mode=yes");?>
は前述の通りNG。

counter.phpはIP取得に対応、manage.phpは昨日、今日の表示に対応。
配布スクリプトでは、manage.phpはカウントアップしません。
->Download
PHPメッセージボード
近日公開予定!!
[PR] Galaxy Ranking 一押しサイト→→ Homewith.netでワンランク上の住まい探し! [PR]
©2001-2008 Galaxy Ranking. All Rights Reserved.