当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [求助]php类型转换
帖子发表于 : 2013-04-16 10:05 

注册: 2006-02-12 19:29
帖子: 512
送出感谢: 1
接收感谢: 0 次
代码:
<?php
 function getScreenX(){
    $res = "<script>document.write(screen.width);</script>";
    return $res;
 }
 function getScreenY(){
    $res =  "<script>document.write(screen.height);</script>";
    return $res;
 }
?>


代码附上。是为取客户端屏幕分辨率。
现在,想进行如下计算。即将其缩小到0.9倍大小。意即getScreenX() * 0.9。结果为0。直接输出,如echo getScreenX(),结果得到正确的屏幕宽度(在本机上是1440)。尝试进行显式的类型转换,使用(int)操作符,结果(int) getScreenX(),得到0。
想问一下这是怎么回事。
另,曾设计程序取得当前的本地目录。使用system获取pwd的输出。即system("pwd", $pathX),打印正常,但若使用opendir试图以此来打开目录,即opendir($pathX),则失败。然而,直接用从变量$_SERVER['SCRIPT_NAME']中使用basedir获取目录则可以使用opendir()打开。
想问一下这是怎么回事。

操作系统ubuntu 12.04 64位


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [求助]php类型转换
帖子发表于 : 2013-04-16 12:02 

注册: 2013-01-13 23:33
帖子: 1
系统: windows7
送出感谢: 0 次
接收感谢: 0 次
楼主大概没懂PHP的原理

代码:
echo getScreenX()
当你使用这个的时候
getScreenX返回的并不是你的屏幕的宽度 而是
代码:
<script>document.write(screen.width);</script>
这段字符串

这段是Javascript的代码 当在浏览器上显示的时候 会自动执行(具体右键查看页面源代码就知道了)
代码:
<script>document.write(screen.width);</script>
这段代码的作用就是通过浏览器来获取的屏幕宽度 并且写入到html的内容当中


php在服务器端运行 而html和javascript在客户端运行,你获取的屏幕宽度 只是在html的层面上 所以int()实际上是对字符串操作 自然会得到一个0

如果要修改成0.9倍
代码:
$res = "<script>document.write(screen.width*0.9);</script>";
这句改成这样就好

注意,这样改也只是显示的值变了 而不是真正的把屏幕宽度传递回php程序了 如果需要html和php多次不刷新通信,请自行学习ajax技术


第二个问题

一般来说打开路径失败的可能
1 路径不存在
2 权限不够
3 程序设置禁止打开 例如PHP的安全模式的某些设置



但楼主的问题因为后面的办法可以打开 所以不存在以上问题


所以这里想到的办法是把两种方法获得到的路径输出到页面上来 对比差异

顺便一提:PHP还是尽量不要用system这个函数 出于安全方面的考虑.

建议楼主仔细阅读PHP的手册内容 并重点阅读http://www.php.net/manual/zh/language.constants.predefined.php这部分内容


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [求助]php类型转换
帖子发表于 : 2013-04-16 12:31 
头像

注册: 2006-04-12 18:54
帖子: 4671
送出感谢: 0 次
接收感谢: 7
你需要在js中进行操作


_________________
荃创想


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译