PHP——给出0的数字字符串值的int类型转换

PHP——给出0的数字字符串值的int类型转换,php,int,casting,Php,Int,Casting,好的,我正在另一台服务器上查询一个页面,它返回一个逗号分隔的两个值的列表。它将返回的东西是: 850,640 我有一些PHP代码调用该页面上的file_get_内容,需要根据这两个值进行一些数值计算 无论我尝试什么,我似乎都无法从中获得int值 $res = trim(file_get_contents('http://thatURL/')); echo "X" . $res . "X<br/>"; list($x,$y) = array_map(create_function('

好的,我正在另一台服务器上查询一个页面,它返回一个逗号分隔的两个值的列表。它将返回的东西是:

850,640
我有一些PHP代码调用该页面上的file_get_内容,需要根据这两个值进行一些数值计算

无论我尝试什么,我似乎都无法从中获得
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
被赋值
0


我做错了什么?

试试下面的方法。
array\u map
和llamda函数对于您的使用来说无疑是过度使用了

$res = " 850,640 ";
echo "X" . $res . "X<br/>";
list($x,$y) = explode(',', trim($res));

echo "X:" . (int)$x;
echo "Y:" . (int)$y;
$res=“850640”;
回声“X”$物件。“X
”; 列表($x,$y)=分解(',',修剪($res)); 回声“X:”。(int)x美元; 回声“Y:”。(int)$y;

为我工作,但我没有使用
file\u get\u contents()
。如果这不起作用,则页面正在输出其他内容。

请尝试以下操作。
array\u map
和llamda函数对于您的使用来说无疑是过度使用了

$res = " 850,640 ";
echo "X" . $res . "X<br/>";
list($x,$y) = explode(',', trim($res));

echo "X:" . (int)$x;
echo "Y:" . (int)$y;
$res=“850640”;
回声“X”$物件。“X
”; 列表($x,$y)=分解(',',修剪($res)); 回声“X:”。(int)x美元; 回声“Y:”。(int)$y;
为我工作,但我没有使用
file\u get\u contents()
。如果这不起作用,页面将输出其他内容

我做错了什么

据我所知,没有任何东西表明$res的内容与您期望的不一样。你能把第一个回音改成:

echo htmlentities($res);
我猜$res包含一些未打印的字符,例如,它实际上是:

<span> </span>850,640<span> </span>
我做错了什么

据我所知,没有任何东西表明$res的内容与您期望的不一样。你能把第一个回音改成:

echo htmlentities($res);
我猜$res包含一些未打印的字符,例如,它实际上是:

<span> </span>850,640<span> </span>

PHP不是类型化语言。用于将字符串转换为整数


更正:这是一种松散类型的语言!我就是这个意思

PHP不是类型化语言。用于将字符串转换为整数



更正:这是一种松散类型的语言!我就是这个意思

因为我在URL上使用了
file\u get\u contents()
,所以在我的
echo
中也加入了一些HTML,因为它被解析出来了。。。只有空的body和html标记。哎呀

因为我在URL上使用了
file\u get\u contents()
,所以在我的
echo
中也加入了一些HTML,因为它被解析出来了。。。只有空的body和html标记。哎呀

您是否尝试过在自定义回调中修剪?我使用
$res=trim(“850640”)尝试了您的代码并且它工作正常。你确定你的URL真的包含这些数字吗?还要注意的是,您可以使用intval()查看源代码,而不是使用自己的函数,在这里以明文打印将非常有用。正如Hamish指出的,您可能正在打印围绕空白的HTML,据我所知,您肯定是在从浏览器的视口而不是HTML源复制和粘贴。您是否尝试过在自定义回调中进行修剪?我尝试过使用
$res=trim(“850640”)并且它工作正常。你确定你的URL真的包含这些数字吗?还要注意的是,您可以使用intval()查看源代码,而不是使用自己的函数,在这里以明文打印将非常有用。正如Hamish指出的,您可能正在打印围绕空白的HTML,据我所知,您肯定是在从浏览器的视口而不是HTML源中复制和粘贴。但是,当我像您那样手动将
$res
设置为“850640”时,它就起作用了。。。这让我觉得850之前还有其他非空白字符?有什么方法可以看到吗?从那页返回了一些其他内容。通过
htmlspecialchars()
运行它,看看它会吐出什么。但是,当我像您那样手动将
$res
设置为“850640”时,它就工作了。。。这让我觉得850之前还有其他非空白字符?有什么方法可以看到吗?从那页返回了一些其他内容。通过
htmlspecialchars()
运行它,看看它会吐出什么。-1不知道你从哪里听说PHP不是类型化语言。它不是严格类型化的,但是。-1不知道你从哪里听说PHP不是类型化语言。这不是严格的打字,但是,你是对的!它有html和body标签。哎呀。谢谢你说得对!它有html和body标签。哎呀。谢谢你不接受我的回答,甚至认为这有助于你找到原因(你不接受我的回答,甚至认为这有助于你找到原因?:(