我在网页中有一个页脚,页脚名为footer.php。我希望页脚根据其他变量有不同的图像。我想做这样的事情:
if (x=1) {include (str_replace('logo1.jpg','logo2.jpg','footer.php'));}
else
{include 'footer.php';}
但这不起作用,它只是定期包含。有没有办法在包含它们的同时替换文件中的文本?
答案 0 :(得分:4)
使用类似:
if (x==1) {
$image='logo1.jpg';
} else {
$image = 'logo2.jpg';
}
include('footer.php');
//// footer.php
echo "<img src='".$image."'/>";
基本上,你曾经尝试过对字符串'footer.php'进行替换,而不是文件本身。这里适当的方法是为图像使用变量,并在提供图像时让页脚使用该变量。
答案 1 :(得分:2)
有没有办法在包含文件时替换文件中的文字?
是的,但是你所包含的文件必须返回其内容。
footer.php
<?
return "<img src='#image'>";
?>
然后你可以做
echo str_replace("#image", "image.jpg", include("footer.php"));
这没有什么不妥,但感觉有点奇怪。
如果我是你,我会让include()只使用Jonathan Fingland提出的预设变量,或者像Tomas Markauskas建议的那样获取页脚文件的内容。
答案 2 :(得分: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的答案)。