使用str_替换并包含在一起(php)
我在网页中有一个页脚,这个页脚叫做footer.php。我希望页脚根据其他变量具有不同的图像。我想这样做:使用str_替换并包含在一起(php),php,include,str-replace,Php,Include,Str Replace,我在网页中有一个页脚,这个页脚叫做footer.php。我希望页脚根据其他变量具有不同的图像。我想这样做: if (x=1) {include (str_replace('logo1.jpg','logo2.jpg','footer.php'));} else {include 'footer.php';} $file = file_get_contents('footer.php'); $file = str_replace('logo1.jpg', 'logo2.jpg', $file);
if (x=1) {include (str_replace('logo1.jpg','logo2.jpg','footer.php'));}
else
{include 'footer.php';}
$file = file_get_contents('footer.php');
$file = str_replace('logo1.jpg', 'logo2.jpg', $file);
eval($file);
但这不起作用,它只是做了一个常规的包含。有没有一种方法可以在包含文件时替换文件中的文本?使用类似于:
if (x==1) {
$image='logo1.jpg';
} else {
$image = 'logo2.jpg';
}
include('footer.php');
////footer.php
echo "<img src='".$image."'/>";
<?
return "<img src='#image'>";
?>
基本上,您将尝试替换字符串“footer.php”,而不是文件本身。这里合适的方法是为图像使用一个变量,并让页脚在提供图像时使用该变量 使用类似于:
if (x==1) {
$image='logo1.jpg';
} else {
$image = 'logo2.jpg';
}
include('footer.php');
////footer.php
echo "<img src='".$image."'/>";
<?
return "<img src='#image'>";
?>
基本上,您将尝试替换字符串“footer.php”,而不是文件本身。这里合适的方法是为图像使用一个变量,并让页脚在提供图像时使用该变量 您的示例不起作用,因为您正在用字符串'footer.php'中的'logo2.jpg'替换'logo1.jpg'。替换的结果仍然是“footer.php”,然后您只需要包含一个名称与字符串匹配的文件 如果您确实需要替换php文件中的字符串并在以后执行,您可以执行以下操作:
if (x=1) {include (str_replace('logo1.jpg','logo2.jpg','footer.php'));}
else
{include 'footer.php';}
$file = file_get_contents('footer.php');
$file = str_replace('logo1.jpg', 'logo2.jpg', $file);
eval($file);
但是有更好的方法来实现您想要的,请参见Jonathan Fingland的答案作为示例。您的示例不起作用,因为您正在用字符串“footer.php”中的“logo2.jpg”替换“logo1.jpg”。替换的结果仍然是“footer.php”,然后您只需要包含一个名称与字符串匹配的文件 如果您确实需要替换php文件中的字符串并在以后执行,您可以执行以下操作:
if (x=1) {include (str_replace('logo1.jpg','logo2.jpg','footer.php'));}
else
{include 'footer.php';}
$file = file_get_contents('footer.php');
$file = str_replace('logo1.jpg', 'logo2.jpg', $file);
eval($file);
但有更好的方法来实现你们想要的——以乔纳森·芬格兰的回答为例
有没有办法在包含文件时替换文件中的文本
是的,有,但您的包含文件必须返回其内容
footer.php
echo "<img src='".$image."'/>";
<?
return "<img src='#image'>";
?>
这没什么问题,不过感觉有点奇怪
如果我是你,我会像Jonathan Fingland建议的那样让include只处理一个预设变量,或者像Tomas Markauskas建议的那样获取页脚文件的内容
有没有办法在包含文件时替换文件中的文本
是的,有,但您的包含文件必须返回其内容
footer.php
echo "<img src='".$image."'/>";
<?
return "<img src='#image'>";
?>
这没什么问题,不过感觉有点奇怪
如果我是你,我会像乔纳森·芬格兰(Jonathan Fingland)建议的那样,让include只处理一个预设变量,或者像托马斯·马考斯卡斯(Tomas Markauskas)建议的那样获取页脚文件的内容。非常感谢,这对我现在有意义。非常感谢,这对我现在有意义。