1

Web ページにフッターがあり、フッターは footer.php と呼ばれます。他の変数に応じて、フッターに異なるイメージを持たせたいと思います。私はこのようなことをしたい:

if (x=1) {include (str_replace('logo1.jpg','logo2.jpg','footer.php'));}
else
{include 'footer.php';}

しかし、これは機能しません。通常のインクルードを行うだけです。それらを含めながらファイル内のテキストを置き換える方法はありますか?

4

3 に答える 3

4

次のようなものを使用します。

if (x==1) {
    $image='logo1.jpg';
} else {
    $image = 'logo2.jpg';
}

include('footer.php');

////footer.php

echo "<img src='".$image."'/>";

基本的に、あなたが持っていたものは、ファイル自体ではなく、文字列 'footer.php' を置き換えようとします。ここでの適切なアプローチは、画像に変数を使用し、画像を提供するときにフッターにその変数を使用させることです。

于 2010-01-28T19:44:27.307 に答える
2

それらを含めながらファイル内のテキストを置き換える方法はありますか?

はい、ありますが、含まれているファイルはその内容を返す必要があります。

フッター.php

<?
return "<img src='#image'>";
?>

それからあなたはすることができます

echo str_replace("#image", "image.jpg", include("footer.php"));

これには何の問題もありませんが、少し奇妙に感じます。

もし私があなただったら、Jonathan Fingland が提案するように include() を事前に設定された変数で動作させるか、Tomas Markauskas が提案するようにフッター ファイルの内容を取得します。

于 2010-01-28T19:51:07.127 に答える
1

文字列「footer.php」で「logo1.jpg」を「logo2.jpg」に置き換えているため、この例は機能していません。置換の結果はまだ「footer.php」であり、文字列に一致する名前のファイルを含めるだけです。

PHP ファイル内の文字列を置き換えて後で実行する必要がある場合は、次のようにすることができます。

$file = file_get_contents('footer.php');
$file = str_replace('logo1.jpg', 'logo2.jpg', $file);
eval($file);

しかし、あなたが望むものを達成するためのより良い方法があります (例については、Jonathan Fingland からの回答を参照してください)。

于 2010-01-28T19:50:12.777 に答える