【问题标题】:Php - remove text units from a numberPhp - 从数字中删除文本单位
【发布时间】:2015-01-20 14:27:44
【问题描述】:
我在一个 php 文件中有以下行,它获取一个值并将其作为 jQuery 变量返回:
var HeaderWrapperHeightNEW = <?php if(get_theme_mod('header_image_full_size') != '1'){ echo get_theme_mod('header_height');}?>;
我的问题是有时返回的结果后面有一个字母单位,例如 600px 或 50% - 我只需要它来回显数字而不是单位。这可能吗?我该怎么做?
【问题讨论】:
标签:
php
jquery
string
replace
【解决方案1】:
这将清除字符串中的所有非数字:
string_with_units.replace(/[^-\d\.]/g, '');
【讨论】:
-
这发生在 JavaScript 端,而不是 PHP。在 PHP 中,使用 floatval 或 intval 等函数从字符串中解析浮点数或整数。
【解决方案2】:
你可以使用 PHP 函数floatval():
<?php
$str = '-10.5px';
$str = floatval($str);
echo $str; // -10.5
?>
你也可以使用类型转换:
<?php
$str = '-10.5px';
$str = (float)$str;
echo $str; // -10.5
?>
注意:
- 它还处理减号和浮点数。 '
10px' 仍然会
只返回10,但它是一个浮点数。
- 如果只返回整数,请改用
$str = (int)$str;。
- 值之前不应有任何内容。
$str = 'margin: -10.5px'; 在这两种情况下都会返回 0。