PHP str_replace()无法按预期工作

时间:2014-04-08 20:04:07

标签: php str-replace

我在这里得到了这段代码:

<?php 
include_once("php_includes/loginLinks.php");
str_replace("member_profile","php_includes/member_profile",$loginLinks);
str_replace("member_account","php_includes/member_account",$loginLinks);
str_replace("logout","php_includes/logout",$loginLinks);
str_replace("register_form","php_includes/register_form",$loginLinks);
str_replace("login","php_includes/login",$loginLinks);
echo $loginLinks;
?>

它应该更改链接的根文件夹,我很确定那里存在一些逻辑错误。

问题: 如何将新回显的链接目录的链接目录更改为另一个目录,或者是另一种更改它的方式(我在PHP中很新,所以不太擅长)?

2 个答案:

答案 0 :(得分:5)

您必须使用str_replace操作的结果更新变量,如下所示:

<?php 
include_once("php_includes/loginLinks.php");
$loginLinks = str_replace("member_profile","php_includes/member_profile",$loginLinks);
$loginLinks = str_replace("member_account","php_includes/member_account",$loginLinks);
$loginLinks = str_replace("logout","php_includes/logout",$loginLinks);
$loginLinks = str_replace("register_form","php_includes/register_form",$loginLinks);
$loginLinks = str_replace("login","php_includes/login",$loginLinks);
echo $loginLinks;
?>

str_replace不会修改原始变量,但会返回新值。在这里,我用更新的值更新$ loginLinks。

答案 1 :(得分:2)

您的错误是您没有将替换分配到$loginLinks。但是str_replace()使用preg_replace()而不是$loginLinks = preg_replace( "/(member_profile|member_account|logout|login|register_form)/", "php_includes/$1", $loginLinks ); ,而不是我相信你的需要。

{{1}}
相关问题