好的,所以有一个我在另一台服务器上查询的页面,它返回一个逗号分隔的两个值列表。它会返回的东西是:
850,640
我有一些PHP代码在该页面上调用file_get_contents,需要根据这两个值进行一些数值计算。
无论我尝试什么,我似乎无法从中获得int
值。
$res = trim(file_get_contents('http://thatURL/'));
echo "X" . $res . "X<br/>";
list($x,$y) = array_map(create_function('$a', 'return (int)$a;'), explode(',', $res));
echo "X:$x";
导致输出:
X 850,640 X
X:0
请注意逗号分隔值之前和之后的空格(地狱怎么样?我trim
'他们!)并且$x
被赋值为0
。
我在这里做错了什么?
答案 0 :(得分:3)
我在这里做错了什么?
据我所见,没有任何内容表明$ res的内容与您的预期不符。你能把第一个回音更改为:
echo htmlentities($res);
我的猜测是$ res包含一些未打印的字符,例如,它实际上是:
<span> </span>850,640<span> </span>
或
850,640
答案 1 :(得分:1)
尝试以下方法。对于您的使用,array_map
和llamda函数可能有点过分。
$res = " 850,640 ";
echo "X" . $res . "X<br/>";
list($x,$y) = explode(',', trim($res));
echo "X:" . (int)$x;
echo "Y:" . (int)$y;
为我工作,但我没有使用file_get_contents()
。如果这不起作用,则页面会输出其他内容。
答案 2 :(得分:1)
PHP不是一种打字语言。使用intval将字符串转换为整数。
更正:这是一种松散的语言!这就是我的意思!
答案 3 :(得分:0)
由于我在网址上使用了file_get_contents()
,因此我在echo
中没有注意到一些HTML,因为它解析了...只是空身和html标签。糟糕!