Php 等效于ereg()调用

Php 等效于ereg()调用,php,preg-match,ereg,Php,Preg Match,Ereg,我的服务器现在运行在php 5.3上,我需要替换对ereg的调用: if (ereg("/$", $pref) === FALSE) { $pref .= '/'; } 我尝试过这种方法,但没有成功: if (preg_match('~/$~', $pref) === FALSE) 这导致 如果有什么不同的话,这是我继承的CodeIgniter 1.6.1应用程序 我试过这个: if (ereg("/$", $pref) === 0) 正如@PeterM所建议的,现在我要去,但这给

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

if (ereg("/$", $pref) === FALSE) 
{
  $pref .= '/';
}
我尝试过这种方法,但没有成功:

if (preg_match('~/$~', $pref) === FALSE)
这导致 如果有什么不同的话,这是我继承的CodeIgniter 1.6.1应用程序

我试过这个:

if (ereg("/$", $pref) === 0) 
正如@PeterM所建议的,现在我要去,但这给了我一个信息“您提交的URI有不允许的字符。”这是一个有效的CodeIgniter URL吗?也许我在代码的其他地方弄错了什么

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

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

我仍然得到了信息。

将其与
0
进行比较,而不是
false
preg_match
返回匹配数。它仅在出错时返回
false

将其与
0
进行比较,而不是
false
preg_match
返回匹配数。它仅在出现错误时返回
false

if(substr($pref, -1) !== '/'){

}
或:

或:


字符串的结尾应该如何包含布尔值false?OP希望检查行的末尾是否有
/
,而不是false。字符串的结尾应该如何包含布尔false?OP想检查一行末尾的
/
,而不是错误。我这样做了,现在将带我去,但这给了我一个消息“您提交的URI不允许使用字符”。我将更新我的问题。似乎除了匹配之外还有其他问题。试试var_dump Itt谢谢,这回答了我最初的问题。我最终升级了CodeIgniter来解决我的其他问题。我这样做了,现在将带我去,但这给了我一个信息“您提交的URI不允许使用字符”。我将更新我的问题。似乎除了匹配之外还有其他问题。试试var_dump Itt谢谢,这回答了我最初的问题。我最终升级了CodeIgniter来解决我的其他问题。
if($pref[strlen($pref)-1] !== '/' ){
 //not found
}