2

目前,当我echo保存一个字符串时,它看起来像这样:

• 94% 正面 ·

我想要的只是:

94

我认为以下方法可以解决问题:

preg_replace("/[^0-9]/","", $string)

但出于某种原因(我假设要点)这样做反而给了我这个:

94018332

任何帮助获得“94”?

4

4 回答 4

3

您是对的,项目符号点作为 HTML 实体处理,因此包含数字。

但是,由于您的格式足够具体,您可以使用更好的正则表达式:

preg_match("/\d+(?=%)/",$string,$match);
$percentage = $match[0];

此正则表达式专门搜索紧跟百分号的数字(并且仅搜索第一个此类匹配项)。

于 2013-03-03T23:09:30.940 回答
3

您可以使用过滤器功能将数字过滤掉。

$yourString =  "• 94% positive";
$int = filter_var($yourString, FILTER_SANITIZE_NUMBER_INT);
echo $int; //WIll echo 94

Demo

于 2013-03-03T23:09:35.897 回答
1

如果您的号码总是在第一个和后面的字符上,您可以使用类似floatval或的功能intval

于 2013-03-03T23:09:07.973 回答
-1

您只是尝试投射吗?

echo (int) trim("• 94% positive ·", "•  ·");
echo (int) trim("• 94% positive", "•  ·");

两者都应输出到:

94

亲切的问候...

于 2013-03-03T23:20:32.670 回答