尽管我使用(int)
和intval()
函数进行了类型转换所做的所有努力。我仍然无法将字符串转换为整数
每当我使用这些函数时,字符串都会转换为0
这是我的代码片段:
$resolution = "<script type='text/javascript'>
document.write('#'+screen.width+'#');</script >";
$screen=str_replace("#","",$resolution);
echo $wid = (int)$screen;
echo $s = 98 * $wid;
类型转换的输出为0.
我甚至尝试使用var_dump
打印数据,但也显示为int(0)
答案 0 :(得分:5)
你的逻辑存在缺陷。
您正在混合服务器和客户端代码。
服务器生成代码(php),然后将结果传递给客户端。 然后,客户端接收生成的结果并解析javascript。
<?php
// this is server code, resolution will be just a string to the server
$resolution = "<script type='text/javascript'> document.write('#'+screen.width+'#');</script>";
// you are now removing the # from the above string but keeping it all intact
$screen=str_replace("#","",$resolution);
// converting it to int returns a stupid value (zero?)
echo $wid = (int)$screen;
echo $s = 98 * $wid;
?>