preg_replace替换属性中为null

问题描述 投票:1回答:2

我建了一个谷歌货币转换器,但我不明白这部分代码

$converted_amount = preg_replace("/[^0-9\.]/", null, $get[0]);

这个模式的工作是什么,null是什么意思?

完整代码:

$amount = urlencode($_POST['amount']);
            $from_Currency = urlencode($_POST['from']);
            $to_Currency = urlencode($_POST['to']);
            $get = file_get_contents("https://www.google.com/finance/converter?a=$amount&from=$from_Currency&to=$to_Currency");
            $get = explode("<span class=bld>",$get);
            $get = explode("</span>",$get[1]);
            print_r($get);
            $converted_amount = preg_replace("/[^0-9\.]/", null, $get[0]);
php regex null
2个回答
0
投票

虽然Nicolas Maltais所写的内容基本上是正确的,但有点不清楚。

  • [^0-9\.] ...只匹配一个角色。 - 但是,preg_replace替换了所有匹配,因为没有指定限制,因此从字符串中删除所有其他字符。
  • null意味着用空字符串替换 - 但是,似乎没有在preg_replace手册中记录。经过相当多的搜索,我在字符串页面上找到了提示,部分是Converting to string: 字符串转换在需要字符串的表达式范围内自动完成。 ... NULL总是转换为空字符串。

-1
投票

[^0-9\.]表示任何字符,但数字0123456789.。这只会匹配一个字符。 null表示用空字符串替换,换句话说删除它。下次您可以在Google上进行简单搜索并找到相同的信息。

© www.soinside.com 2019 - 2024. All rights reserved.