使用preg_replace更改index.php进行测试

时间:2013-01-21 20:10:09

标签: php

在我的论坛网址中,到处都有“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”

1 个答案:

答案 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);