我有几个简单的PHP函数我正在使用。一个用于检测用户是否在iPhone上,另一个用于调整图像的大小(如果是的话)。简单的PHP函数和变量混淆
<?php
/* User agent function */
function userAgent(){
$browser = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
if ($browser == true) { $var = 1; }
return $var;
}
/* Image resize function */
function imageResize($width, $height) {
$var = userAgent($var);
if($var == 1){
$width = round($width/2);
$height = round($height/2);
}else{
$width = round($width);
$height = round($height);
}
echo "width=\"$width\" height=\"$height\"";
}
?>
问题是,如果我手动更改$ VAR为0或1的userAgent()函数,图像不调整,但如果我改变$ VAR来== 0的imageResize( )功能,他们这样做。
为什么变量没有从第一个函数传递到第2个函数,还是我在做其他错误?
谢谢,真的知道这一点,虽然使用双重否定感觉很奇怪。我不使用CSS,因为我正在调整图像大小,并且最好使用内联HTML。我也将列出多个用户代理,所以在我原来的问题,我只是改变$ browser = strpos($ _ SERVER ['HTTP_USER_AGENT'],“iPhone”);到$ browser = strpos($ _ SERVER ['HTTP_USER_AGENT'],“$ array”); 虽然真的有用,但再次感谢。 – theorise 2010-08-27 11:16:22
@dani不客气。请注意'strpos'不接受数组,你必须建立一个循环来检查多个用户代理。使用CSS或内联HTML在任何情况下都不应该有任何区别,只不过CSS是更现代化的做法...... – 2010-08-27 11:18:33
你是对的,我的不好。我认为它没有太大的区别,尽管内联CSS仅仅在这个例子中看起来毫无意义,仅仅是因为HTML对宽度和高度属性的本地支持。实际上,谈话有趣的话题,因为我不知道他们的好处。 – theorise 2010-08-27 11:38:20