【问题标题】:PHP ereg_replace is not working correctly [duplicate]PHP ereg_replace 无法正常工作 [重复]
【发布时间】:2014-03-18 05:00:59
【问题描述】:

我的 id 是a5efa5

下面替换 deprecated[?] [^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(); 
}

帮帮我吧朋友们,我哪里做错了……

【问题讨论】:

  • 它不工作”没用。请说明,如果您收到错误消息(如果是,是哪条)或结果是否与您的预期不同(如果是,如何)。
  • 你的问题是什么。你期待什么输出..你能举个例子吗
  • 从您的评论看来,您似乎想避免除数字之外的任何东西。这是一个案例吗?请解释您对 a5efa5 id 的期望 - 这是有效还是无效?

标签: php regex ereg-replace


【解决方案1】:

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

自 PHP 5.3.0 起,该函数已被弃用。强烈建议不要依赖此功能。

如果您使用的是高于 5.3.0 的版本或 PHP,那么它将无法工作。

【讨论】:

【解决方案2】:

使用 preg_replace

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

【讨论】:

  • 它不接受来自表的这个 a5efa5 id
  • 对不起,我的代码有错误,我更新我的帖子,见上文
  • 我同意这是正确的答案。
猜你喜欢
  • 2013-06-13
  • 2014-07-30
  • 2015-06-16
  • 1970-01-01
  • 1970-01-01
  • 2018-10-21
  • 2017-07-15
  • 2015-09-06
  • 2016-05-06
相关资源
最近更新 更多