【问题标题】:null in preg_replace replacement attributepreg_replace 替换属性中的 null
【发布时间】:2017-04-17 21:45:07
【问题描述】:

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

$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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    虽然 Nicolas Maltais 写的基本正确,但有点不清楚。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-10
      • 2011-01-24
      • 2015-08-09
      • 2021-12-20
      • 1970-01-01
      • 2015-05-19
      • 2011-01-29
      • 1970-01-01
      相关资源
      最近更新 更多