我在网页中有一个页脚,页脚称为footer.php。我希望页脚根据其他变量具有不同的图像。我想做这样的事情:
if (x=1) {include (str_replace('logo1.jpg','logo2.jpg','footer.php'));}
else
{include 'footer.php';}
但这不起作用,它只是做一个常规的包含。有没有办法在包含文件时替换文件中的文本?
我在网页中有一个页脚,页脚称为footer.php。我希望页脚根据其他变量具有不同的图像。我想做这样的事情:
if (x=1) {include (str_replace('logo1.jpg','logo2.jpg','footer.php'));}
else
{include 'footer.php';}
但这不起作用,它只是做一个常规的包含。有没有办法在包含文件时替换文件中的文本?
使用类似的东西:
if (x==1) {
$image='logo1.jpg';
} else {
$image = 'logo2.jpg';
}
include('footer.php');
////页脚.php
echo "<img src='".$image."'/>";
基本上,您将尝试对字符串“footer.php”进行替换,而不是文件本身。此处的适当方法是为您的图像使用一个变量,并让页脚在提供图像时使用该变量。
有没有办法在包含文件时替换文件中的文本?
是的,但是您包含的文件必须返回其内容。
页脚.php
<?
return "<img src='#image'>";
?>
那么你可以做
echo str_replace("#image", "image.jpg", include("footer.php"));
这没有什么问题,但感觉有点奇怪。
如果我是你,我会让 include() 像 Jonathan Fingland 建议的那样使用预设变量,或者像 Tomas Markauskas 建议的那样获取页脚文件的内容。
您的示例不起作用,因为您将字符串“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 的回答)。