【发布时间】:2010-04-01 23:55:02
【问题描述】:
更新:事实证明,以下情况是由我的生产服务器上的缓存问题引起的。感谢所有提供周到答案的人。
我在一个 php 页面上有一个简单的函数,它需要一个 url,例如:
http://myurl.com/mypage.html?param1=value1
并将其转换为:
http://myurl.com/searchpage.html?param1=value1
它所做的一切都是换掉 page.html 部分。
为此,我使用以下方法:
$currentUrl = $this->getCurrentUrl(); // 获取当前 url,即 'http://myurl.com/mypage.html?param1=value1' // 从当前 url 派生一个搜索模式 $模式=“/”。 str_replace(array("/", ".", "-"), array("\\/", "\\.", "\\-"), $currentUrl) 。 "/"; // 去掉'mypage.html' $newUrl = preg_replace($pattern, 'http://myurl.com/', $currentUrl); // 用正确的页面替换问号 $newUrl = str_replace("/?", "/searchpage.html?", $newUrl);上面的代码不是确切的代码,但它是一个很好的表示。它在一台服务器上运行良好,但是当我推送到生产环境时,preg_replace 不起作用。我最初尝试使用 str_replace。它也适用于我的本地开发机器,但不适用于生产服务器。
我已确认 URL 变量输入正确。有什么想法吗?
【问题讨论】:
标签: php preg-replace str-replace