【问题标题】:PHP include error when calling script from CLI从 CLI 调用脚本时 PHP 包含错误
【发布时间】:2015-01-04 14:51:44
【问题描述】:

我正在尝试从 CLI 调用一个包含 PHP Simple HTML DOM Parser library 的 php 脚本,我有两个文件:

文件 test.php

<?php
echo exec('php -f script.php');
?>

文件脚本.php

<?php
include('simple_html_dom.php');
$ob = new simple_html_dom();
?>

在 PHP 5.5.12 上完美运行,但在运行 PHP 5.5.18 的服务器上出现以下错误:

解析错误:语法错误,意外的 T_STRING,期待 T_OLD_FUNCTION 或 T_FUNCTION 或 T_VAR 或 '}' 在 /path/to/simple_html_dom.php 在第 117 行

第 117 行是:

public $nodetype = HDOM_TYPE_TEXT;

这个常量在第 48 行声明为:

define('HDOM_TYPE_TEXT',    3);

我看没问题!我不知道为什么它在 .18 而不是 .12 中出现问题,我已经尝试了所有方法,你能帮帮我吗?

【问题讨论】:

    标签: php cmd include command-line-interface parse-error


    【解决方案1】:

    我认为您的服务器运行的是非常旧的 PHP 版本
    试试这个:var_dump(shell_exec("php --version")); 或简单地运行 phpinfo.php

    【讨论】:

    • indeed: string(146) "PHP 4.4.9 (cgi) (built: Apr 20 2012 18:34:17) Copyright (c) 1997-2008 The PHP Group Zend Engine v1.3.0,版权所有 (c) 1998-2004 Zend Technologies " php cli 版本是否独立于我服务器上 5.5 的 php 版本?
    • 不,您的服务器运行的是 PHP 4.4.9 而不是您所说的 5.5。你是这台服务器的管理员吗?如果是:检查您是否下载了正确版本的 php,将您的 Apache 服务器与您的 PHP 正确链接并重新启动您的 apache
    • 感谢您的回答对我帮助很大!不,我不是管理员,但显然 OVH 默认运行 CLI 和 CGI​​ 的两个不同版本!我发现我必须通过指定其整个路径来调用更新版本的 php-cli,现在它可以工作了。
    • 很高兴为您提供帮助 :)
    猜你喜欢
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 2022-11-12
    • 1970-01-01
    • 2012-04-22
    • 2012-12-31
    相关资源
    最近更新 更多