preg_replace替换属性中为null

时间:2016-12-02 21:51:55

标签: php regex null

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

$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]);

2 个答案:

答案 0 :(得分:0)

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

  • [^0-9\.] ...只匹配一个字符。 - 是的,preg_replace替换所有匹配项,因为没有指定 limit ,从而删除字符串中的所有其他字符。
  • null表示替换为空字符串 - 似乎是真的,但preg_replace手册中没有记录。只有经过一番搜索后,我才在字符串页面Converting to string部分找到提示:
      

    字符串转换是在一个范围内自动完成的   表达式需要一个字符串。 ... NULL 始终转换为空字符串。

答案 1 :(得分:-1)

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