preg_replace替换属性中为null
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了preg_replace替换属性中为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]);
答案
虽然Nicolas Maltais所写的内容基本上是正确的,但有点不清楚。
[^0-9.]
...只匹配一个角色。 - 但是,preg_replace
替换了所有匹配,因为没有指定限制,因此从字符串中删除所有其他字符。null
意味着用空字符串替换 - 但是,似乎没有在preg_replace
手册中记录。经过相当多的搜索,我在字符串页面上找到了提示,部分是Converting to string: 字符串转换在需要字符串的表达式范围内自动完成。 ...NULL
总是转换为空字符串。
另一答案
[^0-9.]
表示任何字符,但数字0123456789
和.
。这只会匹配一个字符。 null
表示用空字符串替换,换句话说删除它。下次您可以在Google上进行简单搜索并找到相同的信息。
以上是关于preg_replace替换属性中为null的主要内容,如果未能解决你的问题,请参考以下文章
php preg_replace 帮助 iframe src
当字符串包含单引号时 PHP preg_replace() 返回 null 但否则有效