dポイントプレゼントキャンペーン実施中!

index.php
******************************
<?php
require("conf.php");
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title><?= TITLE ?></title>
</head>
<body bgcolor="#FFFFFF" topmargin="100">
//例1
<?
virtual ('./cgi-bin/count.cgi?LOG=$logfile');
?>

//例2
<?php $count; ?>

<?= COM ?>
<BR><BR>
</center>
</body>
</html>

conf.php
***************
例1
$logfile = "****.log";

//カウンターファイルリンク
例2
$count = "<?
virtual ('./cgi-bin/count.cgi?LOG=****.log');
?>";

例1.例2ともにうまくいきませんでした。
conf.phpに集約して記入したいのですがお知恵を拝借できれば嬉しいです。どうぞよろしくお願いします。

A 回答 (2件)

<? require("conf.php"); ?>


<? virtual('./cgi-bin/count.cgi?LOG=' . $logfile . '&MODE=h'); ?>
これではだめですか?

シングル・ダブルクォートの違いは理解できていますか?
$logfile = 'hoge.log';
print '$logfile';// $logfile
print "$logfile";// hoge.log
print "{$logfile}hoge";// hoge.loghoge
    • good
    • 0
この回答へのお礼

おかげさまで無事解決しました。
ありがとうございました。

お礼日時:2009/01/11 10:25

virtualがなんなのか、どううまくいかないのかよく分かりませんけど



virtual ('./cgi-bin/count.cgi?LOG=$logfile');
・シングルクォートなので変数は展開されません。
・関数名と"("の間は普通空けないのでは?
→ virtual('<img src="./cgi-bin/count.cgi?LOG=' . $logfile . '" />');

$count = "<? virtual ('./cgi-bin/count.cgi?LOG=****.log'); ?>";
・ただの文字列なのでさらにPHPとして評価しないと関数は動いてません。
→ $count = virtual('./cgi-bin/count.cgi?LOG=****.log');// ?
  <?= $count //返り値を文字列にしておく ?>

# あとは蛇足
具体的にどうしたいのか分からないので手当たり次第書きますが
virtualがなにしているのか名前からは判断できません。
$logfile は一般的に使いそうな名前なので先頭で読み込むのは怖い気もします。
定数やクラス定数やオブジェクトを使った方が安心かも。

function counter_link($logfile) {
return '<img src="./cgi-bin/count.cgi?LOG=' . $logfile . '" />';
}
- -
<?= counter_link(LOG_FILE); ?>

この回答への補足

アドバイスありがとうございます。
そして、うまく説明できず申し訳ございません。

index.htmlファイルに記載しておりますカウンター用ssi
<!--#include virtual="./cgi-bin/count.cgi?LOG=log&MODE=h"-->

これをindex.phpファイルに置き換えました
<?
virtual ('./cgi-bin/count.cgi?LOG=log&MODE=h');
?>

(上記両ファイルは実働を確認しています)

さらにlogの部分をconf.php(別)ファイルにて設定いたいのですが
ご教授よろしくお願いいたします。

補足日時:2009/01/08 20:38
    • good
    • 0

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