目前,当我echo
保存一个字符串时,它看起来像这样:
• 94% 正面 ·
我想要的只是:
94
我认为以下方法可以解决问题:
preg_replace("/[^0-9]/","", $string)
但出于某种原因(我假设要点)这样做反而给了我这个:
94018332
任何帮助获得“94”?
目前,当我echo
保存一个字符串时,它看起来像这样:
• 94% 正面 ·
我想要的只是:
94
我认为以下方法可以解决问题:
preg_replace("/[^0-9]/","", $string)
但出于某种原因(我假设要点)这样做反而给了我这个:
94018332
任何帮助获得“94”?
您是对的,项目符号点作为 HTML 实体处理,因此包含数字。
但是,由于您的格式足够具体,您可以使用更好的正则表达式:
preg_match("/\d+(?=%)/",$string,$match);
$percentage = $match[0];
此正则表达式专门搜索紧跟百分号的数字(并且仅搜索第一个此类匹配项)。
您可以使用过滤器功能将数字过滤掉。
$yourString = "• 94% positive";
$int = filter_var($yourString, FILTER_SANITIZE_NUMBER_INT);
echo $int; //WIll echo 94
如果您的号码总是在第一个和后面的字符上,您可以使用类似floatval
或的功能intval
。
您只是尝试投射吗?
echo (int) trim("• 94% positive ·", "• ·");
echo (int) trim("• 94% positive", "• ·");
两者都应输出到:
94
亲切的问候...