我正在使用此功能将平方米转换为平方英尺。
$sinput = rtrim(get_field('fl_area'), ", \t\n");
if(trim($sinput) == "0"){echo ' ' ;} else {$soutput = metersToSquareFeet($sinput); echo $soutput . ' sq. m (' . number_format($sinput ) . ' sq. f)' ;}
function metersToSquareFeet($meters, $echo = true)
{
$m = $meters;
$valInFeet = $m*10.7639;
$valFeet = (int)$valInFeet;
if($echo == true)
{
echo $valFeet;
} else {
return $valFeet;
}
}
我遇到的问题是:
rtrim(get_field('fl_area'), ", \t\n");
用户以3,246
格式输入数字,我想将其转换为3246
,以使我的功能正常工作。
当然我也可以以某种方式修改函数,而不是首先使用rtrim
答案 0 :(得分:2)
您有几个选项,但最简单的选择可能是删除所有非数字字符。
不确定 get_field 的作用,但假设它只是从输入中获取字段,就可以使用正则表达式。
$sinput = preg_replace( '/[^0-9]/', '', $get_field('fl_area') );
答案 1 :(得分:2)
rtrim
只删除字符串末尾的字符,而不是中间字符。使用preg_replace
:
$sinput = preg_replace('/[,\s]+/g', '', get_field('fl_area'));
答案 2 :(得分:2)
您可以使用str_replace()
从字符串中删除所有出现的逗号和空格:
$m = str_replace(array(',',' '), '', $m);
甚至strtr()
:
$m = strtr($m, array(',' => '', ' ' => ''));
这可能比常规尝试更快。但是,如果函数调用的数量很少,则差异不会很明显。
答案 3 :(得分:0)
试试这个:
str_replace(array(',',' '), '', get_field('fl_area'));