2011-04-06 222 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變量)。