我建了一个谷歌货币转换器,但我不明白这部分代码
$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]);
虽然Nicolas Maltais所写的内容基本上是正确的,但有点不清楚。
[^0-9\.]
...只匹配一个角色。 - 但是,preg_replace
替换了所有匹配,因为没有指定限制,因此从字符串中删除所有其他字符。null
意味着用空字符串替换 - 但是,似乎没有在preg_replace
手册中记录。经过相当多的搜索,我在字符串页面上找到了提示,部分是Converting to string:
字符串转换在需要字符串的表达式范围内自动完成。 ... NULL
总是转换为空字符串。[^0-9\.]
表示任何字符,但数字0123456789
和.
。这只会匹配一个字符。 null
表示用空字符串替换,换句话说删除它。下次您可以在Google上进行简单搜索并找到相同的信息。