编辑:问题是(半)固定的。现在,当我投射字符串时,它变成了itege
我正在尝试从 Steam 网站获取一系列数据。这些数据之一是价格。
我发出的 Web 请求返回类似于以下内容:
class=\"market_table_value\">\r\n\t\t\t\tStarting at:<br\/>\r\n\t\t\t\t<spanstyle=\"color:white\">$9.05 USD<\/span>\r\n\t\t\t<\/span>\r\n\t\t\t<span
这不是全部回报,而是相关部分。
所以我然后使用以下方法将它存储在一个数组中(因为请求通常返回多个项目)
preg_match_all('#Starting\s*at:<br/>\r\n\t\t\t\t(.*)\t\t\t</span>#siU',$res->results_html, $sor);
foreach($sor[1] as $k => $v)
$objects[$k]['price'] = $v; //str_replace('$', '', $v);
...然后我将对象写入 data.json 文件。这是 data.json 的格式(相关部分。)
"price":"<span style=\"color:white\">$0.48<\/span>\r\n"
问题是,当我尝试将价格转换为浮点数时,它返回 0。这是该部分的代码。
foreach($decodedfile as $datas) {
$tmp = preg_replace(array("/[^0-9,.]/"), "", $datas->price);
$ourprice = (float)$tmp;
$sql2 = ("INSERT INTO Products (FileID, FileName, FileCat, FileType, FileMethod, FilePrice) VALUES ('".$id."', '".$datas->name."', '12', 'Rifle', 'email', '".$ourprice."')");
'$decodedfile' 只是 json_decode'd data.json。
所以,我真正的问题是,为什么当我将它转换为浮点数时它会变为 0?