Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php4 webhost上的Php意外T_字符串,但php5 localhost上的Php意外T_字符串_Php_Syntax_Php4 - Fatal编程技术网

php4 webhost上的Php意外T_字符串,但php5 localhost上的Php意外T_字符串

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

我在下面的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 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中,类构造函数与类同名——没有_构造或任何其他神奇方法。至于为什么错误发生在它发生的地方,有一个错误在它发生的时候没有出现是很正常的