プロが教えるわが家の防犯対策術!

質問を出すのは初めてでプログラム1年生です。

質問内容は
a.phpにあるアクセスカウンターの数値をb.phpに呼び出したいのですが、可能なのでしょうか??

ちなみにb.phpではアクセスカウントを増やしたくありません。
<form>で括り$_GETで呼び出すなどしましたが、1度a.phpから飛ばないと表示されませんでした。

いろいろ類似する質問や記事を見て試行錯誤しましたが、どうしても表示されません。
どなたか教えていただけたら幸いです。

a.phpで記載している内容です。

<?php
$counter_file = 'counter.txt';
$counter_lenght = 8;
$fp = fopen($counter_file, 'r+');
if ($fp){
if (flock($fp, LOCK_EX)){
$counter = fgets($fp, $counter_lenght);
$counter++;
rewind($fp);
if (fwrite($fp, $counter) === FALSE){
print('ファイル書き込みに失敗しました');
}
flock($fp, LOCK_UN);
}
}
fclose($fp);
print('COUNT:'.$counter);
?>

b.phpで記載している内容です。

<?php
ob_start();
include("a.php");
ob_clean();
print $counter;
?>

私の取って付けたような知識では太刀打ちできませんでした。
どうかお助け願います。

A 回答 (1件)

「a.phpにあるアクセスカウンターの数値を取得する」とはどういうことでしょう。

ごく普通にb.phpでもファイルをオープンして書き込まないようにするだけでは問題があるのでしょうか?

【a.php】

if ($fp = @fopen('counter.txt', 'r+')) {
____if (flock($fp, LOCK_EX)) {
________echo $counter = (int)stream_get_contents($fp) + 1;
________ftruncate($fp, 0);
________rewind($fp);
________fwrite($fp, $counter);
________flock($fp, LOCK_UN);
____}
____fclose($fp);
}

【b.php】

if ($fp = @fopen('counter.txt', 'r')) {
____if (flock($fp, LOCK_SH)) {
________fpassthru($fp);
________flock($fp, LOCK_UN);
____}
____fclose($fp);
}


備考
http://qiita.com/mpyw/items/3adcec3c66e515895b08
http://qiita.com/mpyw/items/e7f3f60b687053b7832a
    • good
    • 0
この回答へのお礼

返事が遅くなってすみません。
ありがとうございます、上記のコードで試してみたところ見事できました。

説明がヘタクソで申し訳有りませんでした。
これがやりたかったのです、本当にありがとうございました。

お礼日時:2013/11/08 11:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!