在我的论坛网址中,到处都有“index.php”。我想用“test”替换它。在我的PHP文件中,我有这一行:
// Makes it easier to refer to things this way.
$scripturl = $boardurl . '/index.php';
我尝试将其更改为:
// Makes it easier to refer to things this way.
$scripturl = $boardurl . '/test';
然而,这返回了404错误。有人告诉我,我需要使用preg_replace来实现这一点。我查看了PHP手册,它说我需要一个模式,替换和一个主题。我对主题部分感到困惑。
我尝试了这个,但没有占上风:
// Makes it easier to refer to things this way.
$scripturl = $boardurl . preg_replace('/index.php','/test','?');
以下是一个示例网址:“domain.com/index.php?node=forum”
我希望它看起来像:“domain.com/test?node=forum”
答案 0 :(得分:3)
您可以使用str_replace()
。像这样:
$new_url = str_replace('index.php', 'test/', $original_url);
请注意preg_replace()
也会完成这项工作,但它更复杂(也更强大)。 str_replace()适用于这种情况。
仅为了您的信息,str_replace的主题参数是 orginal 字符串,在您的示例中,其中包含“index.php”的网址。您的示例如下所示:
$pattern = '/index\.php/';
$replacement = 'test/';
$subject = 'http://yoursite.com/index.php?foo=bar';
echo preg_replace($pattern, $replacement, $subject);