php4 webhost上的Php意外T_字符串,但php5 localhost上的Php意外T_字符串
我在下面的php脚本中遇到了一个非常令人沮丧的问题。在使用XAMPP的本地机器上,一切正常,但当我将其放到web上时,我得到:php4 webhost上的Php意外T_字符串,但php5 localhost上的Php意外T_字符串,php,syntax,php4,Php,Syntax,Php4,我在下面的php脚本中遇到了一个非常令人沮丧的问题。在使用XAMPP的本地机器上,一切正常,但当我将其放到web上时,我得到: Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/38/d220091779/htdocs/roughgiraffed/RG2/portfolio_item_vars.php on lin
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/38/d220091779/htdocs/roughgiraffed/RG2/portfolio_item_vars.php on line 20
如果有人能帮我看一眼,或者给我提些建议,我将不胜感激
错误就在array\u push($projectmages,$filePath)正下方的行上代码>位于函数底部附近
编辑:尽管错误列在第20行(在getImages()中),但我删除了下面的类,错误消失了。当然,我还是希望班上的人继续工作。。。但这是否意味着我的php版本毕竟存在问题
<?php
$pageTitle = "Portfolio";
//return an array of the (non-featured, non-thumb) images within a given project
function getImages($category, $project){
$projectImages = Array();
if ($dir = opendir("portfolio/" . $category . "/" . $project . "/")){
//open each 'file' in the directory
while($file = readdir($dir)){
$filePath = "portfolio/" . $category.'/'.$project.'/'.$file;
//check if it really is a file
if($file != "." && $file != ".." && $file[0] != '.' && is_file($filePath)) {
//check if it is an image
if(getimagesize($filePath)){
//ignore featured_image and _thumbs
if(!strstr($file, "featured_image") && !strstr($file, "_thumb")){
//Add the non-featured, non-thumb image to the array
array_push($projectImages, $filePath);
}
}
}
}
closedir($dir);
}
return $projectImages;
}
class ImgResizer {
private $originalFile = '';
public function __construct($originalFile = '') {
$this -> originalFile = $originalFile;
}
public function resize($newWidth, $targetFile) {
if (empty($newWidth) || empty($targetFile)) {
return false;
}
$src = imagecreatefromjpeg($this -> originalFile);
list($width, $height) = getimagesize($this -> originalFile);
$newHeight = ($height / $width) * $newWidth;
$tmp = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
if (file_exists($targetFile)) {
unlink($targetFile);
}
imagejpeg($tmp, $targetFile, 85); // 85 is my choice, make it between 0 – 100 for output image quality with 100 being the most luxurious
}
}
?>
我的本地主机运行的是PHP版本5.3.1
WebHost正在运行PHP版本4.4.9多亏了评论中的帮助,我确定这实际上是PHP版本的问题。尽管如此,我仍然不知道为什么它在第20行给出了错误,大约在违规代码的上方10行。感谢评论中的帮助,我确定这实际上是php版本的问题。尽管如此,我还是不知道为什么它在第20行给出了错误,大约在违规代码的上方十行。如果使用PHP5特定的东西,这种奇怪的解析错误可能会发生在PHP4中,比如PHP5引入的public
关键字
在计划在PHP4和PHP5下运行完全相同的源代码时,您可能应该看看官方的PHP5
摘录:
向后不兼容的更改
虽然大多数现有的PHP4代码应该在不做任何更改的情况下工作,但是
应注意以下向后不兼容的更改:
- 有一些新的保留关键字
- strrpos()和strrpos()现在将整个字符串用作针
- 非法使用字符串偏移量会导致E_错误而不是E_警告
:
如果使用PHP5特定的东西,比如PHP5引入的public
关键字,这种奇怪的解析错误可能会在PHP4中发生
在计划在PHP4和PHP5下运行完全相同的源代码时,您可能应该看看官方的PHP5
摘录:
向后不兼容的更改
虽然大多数现有的PHP4代码应该在不做任何更改的情况下工作,但是
应注意以下向后不兼容的更改:
- 有一些新的保留关键字
- strrpos()和strrpos()现在将整个字符串用作针
- 非法使用字符串偏移量会导致E_错误而不是E_警告
:
在PHP4中不能使用_construct()
必须使用与类名相同的函数
使用ImgResizer()代替_construct(),或者获得更好的web主机。PHP4非常古老。在PHP4中不能使用_construct()
必须使用与类名相同的函数
使用ImgResizer()代替_construct(),或者获得更好的web主机。PHP4非常古老。@Quasdunk-这与此错误有关系吗?OP,请确保你放在网上的文件与你本地机器上的文件完全相同。我同意@ajreal。我刚刚根据4.3.10、4.4.9、5.2.9-2、5.2.17、5.3.5和5.3.6对上述代码进行了语法检查,结果都是完全正确的。服务器上的代码与本地计算机上的代码不同。请检查服务器的php版本这是文件的文本副本/粘贴吗?因为如果是,我的编辑器中的第20行就不是紧靠数组下方的那一行。
,而是紧靠closedir()上方的那一行。
。目前这并没有帮助,只是试图确保我们对文件有一个完整的了解。嗯,我不确定我是否正确地记住了这一点,但PHP4在命中PHP5特定的东西时,例如public
关键字或类似的东西时,不是有时会给出那种解析错误吗?/homepages/38/d220091779/htdocs/roughgiraffed/RG2/portfolio_item_vars.php
的第20行包含什么内容?@Quasdunk-这与此错误有关系吗?OP,请确保你放在网上的文件与你本地机器上的文件完全相同。我同意@ajreal。我刚刚根据4.3.10、4.4.9、5.2.9-2、5.2.17、5.3.5和5.3.6对上述代码进行了语法检查,结果都是完全正确的。服务器上的代码与本地计算机上的代码不同。请检查服务器的php版本这是文件的文本副本/粘贴吗?因为如果是,我的编辑器中的第20行就不是紧靠数组下方的那一行。
,而是紧靠closedir()上方的那一行。
。目前这并没有帮助,只是试图确保我们对文件有一个完整的了解。嗯,我不确定我是否正确地记住了这一点,但PHP4在命中PHP5特定的东西时,例如public
关键字或类似的东西时,不是有时会给出那种解析错误吗?php
/homepages/38/d220091779/htdocs/roughgiraffed/RG2/portfolio_item_vars.php的第20行包含什么内容?请原谅我的无知,上次使用PHP4是2005年,Davidhaskins指出了这个问题。在php4 oop中,类构造函数与类同名——没有_构造或任何其他神奇方法。至于为什么错误发生在它发生的地方,有一个错误没有出现在你预期的地方并不罕见。甚至调查这个问题都没有意义——php4在2007年就寿终正寝了!没有人应该在生产服务器上运行它。请原谅我的无知,上次使用PHP4是在2005年,Davidhaskins指出了这个问题。在php4 oop中,类构造函数与类同名——没有_构造或任何其他神奇方法。至于为什么错误发生在它发生的地方,有一个错误在它发生的时候没有出现是很正常的