1

我的服务器现在在 php 5.3 上运行,我需要将此调用替换为 ereg:

if (ereg("/$", $pref) === FALSE) 
{
  $pref .= '/';
}

我试过这个,除其他外没有任何成功:

if (preg_match('~/$~', $pref) === FALSE)

这导致http://example.com/index.phpwww/browse 如果有什么不同,这是我继承的 CodeIgniter 1.6.1 应用程序。

我试过这个:

if (ereg("/$", $pref) === 0) 

正如@PeterM 建议的那样,现在去http://example.com将我带到http://example.com/index.php/www/browse,但这给了我“您提交的 URI 包含不允许的字符。 " 这是一个有效的 CodeIgniter URL 吗?也许我在代码的其他地方搞砸了?

我将 codeigniter/application/config/config.php 的第 126 行更改为:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

我仍然收到消息。

4

2 回答 2

3

对比一下0,不是falsepreg_match返回匹配数。它false仅在错误时返回。

于 2013-02-11T19:31:35.947 回答
2
if(substr($pref, -1) !== '/'){

}

或者:

if($pref[strlen($pref)-1] !== '/' ){
 //not found
}
于 2013-02-11T19:33:54.223 回答