2014-02-18 40 views
-2

我的ID是a5efa5PHP ereg_replace工作不正常

代码如下替换弃用[?] [^a-z0-9]不起作用。 a5efa5在我的数据库表中的一个id。

//Connect to the database through our include 
include_once "database.php"; 
// Get the member id from the URL variable 
$id = $_REQUEST['id']; 
$id = ereg_replace("[^a-z0-9]", "", $id); // filter everything but numbers for security 
if (!$id) { 
    echo "Missing Data to Run"; 
    exit(); 
} 

帮助我的朋友,在哪里我犯了一个错误......

+0

“*它不工作*” 是没有用的。请解释一下,如果你收到一条错误信息(如果是,哪一条)或者结果与你的期望有差异(如果是这样,如何)。 –

+0

你的问题是什么。你期待什么输出..你能提供一个例子 –

+0

从你的评论看来,你似乎只想避开数字。这是一个案子吗?请解释你期望从'a5efa5' id - 这个有效还是无效? – doc

回答

1

这可能是因为ereg_replacedeprecated。以下是php.net网站上的内容

从PHP 5.3.0开始,此功能已被拒绝。依靠这个功能是非常不鼓励的。

如果您使用的是大于5.3.0的版本或PHP,那么它将不起作用。

+0

如果功能已被弃用,并不意味着它不起作用。 – doc

+0

有很多更好的问题/答案涵盖了ereg_ *的弃用:http://stackoverflow.com/q/6270004/46675 –

1

使用的preg_replace

$id = preg_replace('#[^a-z0-9]+#', '', $id); 
+0

它不接受来自表 – user3304633

+0

的这个a5efa5 id对不起,我有我的代码中的错误,我更新我的帖子,见上面 – LONGMAN

+0

我同意这是正确的答案。 – Quixrick