2011-04-06 127 views
0

我用下面的代码,但它给了我大约一个unexpeted在该行的语句中的错误“,但我不知道语法应该怎么走:PHP获取图像尺寸

list($width,$height,$type,$attr) = getimagesize("' . $SESSION_["html_folder"] . '/uploadedfiles/' . $row['logo'] . '"); 

echo "<p>This logo is ".$width; x $.height; echo "pixels in size.</p>"; 

PHP说,错误是对第一线。

+1

这里的语法突出显示应该告诉你问题是什么。你正在用'''打开一个字符串,但没有关闭它,尽管我可以看到它是不必要的。 – 2011-04-06 14:58:04

+0

它在你的会话中存储'html_folder'是我担心的内容 – RobertPitt 2011-04-06 15:02:48

回答

2

试试这个

list($width,$height,$type,$attr) = getimagesize($SESSION_['html_folder'] . '/uploadedfiles/' . $row['logo']); 

在你的代码中的错误是你打开了字符串“两次”,一个以“和一个用”。如果在需要字符串的情况下使用变量作为参数,则不需要将变量设置为引号。

您应该确保在$ SESSION _ ['html_folder']中没有恶意代码,例如与

if(!is_dir($SESSION_['html_folder'])) 
    die("ERROR"); 
+0

nitpick:代码不可执行,单引号是这样的性能微小降低,并且它也不会阅读转义字符 – RobertPitt 2011-04-06 15:05:20

+0

感谢您的提示太... :) – user517593 2011-04-06 15:13:58

+0

@RobertPitt:性能目标不是那么大,我同意:-)但尽管如此,我认为这是值得说的 – strauberry 2011-04-06 15:16:17

0

您选择添加各种不必要的报价

list($width,$height,$type,$attr) = getimagesize($SESSION_["html_folder"] . '/uploadedfiles/' . $row['logo']); 
0

你想:

list($width,$height,$type,$attr) = getimagesize($_SESSION["html_folder"] . '/uploadedfiles/' . $row['logo']); 

的主要问题是,你使用双引号来打开一个字符串,但你没用双引号关闭字符串。以上是一个更好的格式化字符串(并修复了您的$_SESSION变量)。