如何将字符串转换为整数?

时间:2011-04-21 16:32:03

标签: php

<?php

header('Content-type: text/html; charset=gb2312');

include("parser.php");

$html = file_get_html('http://www.souyishop.com/shop_gkq5/1280/products.aspx?sku=1351249&shbid=20358');

$price = $html->find('span[id=Product_main1_Label5]');
$price = str_replace(" ", "", str_replace("¥", "", str_replace("元", "", $price[0])));

echo (int)$price . "<br>";

?>

基本上,我正在尝试取价¥32元,我删除了货币和空白区域。之后我尝试将字符串转换为int,以便稍后进行计算。猜猜看,我得到了0. :(

4 个答案:

答案 0 :(得分:4)

这样的事情无法发挥作用:

echo intval('¥ 32');

所以尝试替换所有非数字

echo (int)preg_replace( '~\D~', '', $str );

答案 1 :(得分:2)

str_replace链很麻烦

更优雅的解决方案是使用preg_match

取出所有数字
$price = preg_match('/[0-9]+/i', $price, $matches);
print_r($matches);

答案 2 :(得分:2)

在这种情况下使用正则表达式:

$re = preg_match('/(\d+)/', $str, $matches);
$price = $matches[1];

答案 3 :(得分:0)

我认为你应首先回复$price without和int转换以确定你是否实际上正在替换你认为的字符串项,这可能是它返回0的原因。

中文编码需要特殊处理。

编辑:

尝试使用html代码作为char(yen =&amp;#165;),请参阅:http://www.starr.net/is/type/htmlcodes.html