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标签。哎呀。谢谢你不接受我的回答,甚至认为这有助于你找到原因(你不接受我的回答,甚至认为这有助于你找到原因?:(