在USAePay源代码中将ereg_replace转换为preg_replace

时间:2011-11-08 19:45:52

标签: php regex preg-replace

我正在使用USAePay的[可怕] PHP库连接到他们的网关,但是我收到以下错误:

  

不推荐使用:函数ereg_replace()在第320行的... / usaepay.php中已弃用

这对应于以下行:

$this->amount = ereg_replace("[^[:digit:].]", "", $this->amount);

所以,我想用preg_replace将其切换出来 这就是我的想法:

$this->amount = ereg_replace("/[^[\d].]/", "", $this->amount);

这是否等同于上面的那个?

2 个答案:

答案 0 :(得分:4)

您可能想要获取最新版本的usaepay库:

https://github.com/usaepay/usaepay-php

用以下内容替换相关行:

$this->amount=preg_replace("/[^0-9\.]/","",$this->amount);

答案 1 :(得分:3)

您希望从表示金额的字符串中删除任何非数字或非句点字符。你可以这样做:

$this->amount = preg_replace("/[^\d.]/", "", $this->amount);

使用正则表达式:

[   - Start of character class
 ^  - Negation
 \d - any digit
 .  - a literal perios
]   - end of character class