str_replace() 是否通过引用影响主题字符串?

问题描述 投票:0回答:2

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

<?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 replace
2个回答
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 。


2
投票

您的错误是您没有将替换分配到

$loginLinks
中。但我相信,使用
str_replace()
代替
preg_replace()
会更好地满足您的需求。

$loginLinks = preg_replace(
    "/(member_profile|member_account|logout|login|register_form)/",
    "php_includes/$1",
    $loginLinks
);
© www.soinside.com 2019 - 2024. All rights reserved.