2

在我的论坛网址中,到处都有“index.php”。我想用“测试”替换它。在我的 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','?');

这是一个示例 URL:“domain.com/index.php?node=forum”

我希望它看起来像:“domain.com/test?node=forum”

4

1 回答 1

3

您可以使用str_replace(). 像这样:

$new_url = str_replace('index.php', 'test/', $original_url);

请注意,它preg_replace()也可以完成这项工作,但它更复杂(并且功能强大)。str_replace() 适合这种情况。

仅供参考,str_replace 的主题参数是原始字符串,在您的示例中是带有“index.php”的 url。您的示例如下所示:

$pattern = '/index\.php/';
$replacement = 'test/';
$subject = 'http://yoursite.com/index.php?foo=bar';

echo preg_replace($pattern, $replacement, $subject);
于 2013-01-21T20:19:18.603 回答