str_replace似乎禁用了PHP

时间:2015-12-09 21:20:10

标签: php str-replace

我使用str_replace根据所选的域名更改模板中的URL。但它似乎阻止了模板中的PHP代码加载。

这就是我所做的:

<?php

$domain = $website_data['domain'];
$path_to_file = 'assets/sites/'.$domain.'/index.php';
$file_contents = file_get_contents($path_to_file);
$file_contents = str_replace('domainhere',$domain,$file_contents);
file_put_contents($path_to_file,$file_contents);

echo $file_contents;

?>

所以它做我想做的事情,然后它回显$ file_contents和页面显示文件。除了页面上的任何PHP内容都不会呈现。

例如,如果我这样做:

<?php echo $domain ?>

它只是空白,如果我查看源代码,我可以看到它如上所述。

我不是PHP专家,因为你可以猜到所以任何想法都会受到赞赏,因为我显然错过了一些东西!

2 个答案:

答案 0 :(得分:2)

我很惊讶没有人提到这是一个多么可怕的想法。如果您有两个不同的用户访问此脚本,他们将覆盖彼此的更改。此外,在第一次更改后,&#39; domainhere&#39;将不再存在于原始文件中。

相反,你拥有的任何地方&#34; domainhere&#34;在第一个文件中,将其更改为变量名,然后在仅包含文件之前设置变量。

答案 1 :(得分:0)

我认为你想要做的是:

echo()

如上面的评论中所述,使用Node显示的内容不会作为程序代码执行。