1
我知道这个错误是由于一些不匹配的括号,引号或任何其他原因,仍然无法找到解决方案,因为我的代码在本地主机上完美工作,但给我我的共享主机服务器上的这个错误(同样的PHP版本:5.3.8)解析错误:语法错误,第1行出现意外的T_STRING
function call_hook() {
global $url;
$url_array = explode('/', $url);
if (isset($url_array[0]) && $url_array[0] != '') {
$controller = $url_array[0];
} else {
$controller = DEFAULT_CONTROLLER;
}
if (isset($url_array[1]) && $url_array[1] != '') {
$action = $url_array[1];
} else {
$action = DEFAULT_ACTION;
}
if (isset($url_array[2])) {
$queryString = explode(PARAM_DELIMITER, $url_array[2]);
} else {
$queryString = array();
}
$controller_name = $controller;
$controller = ucwords($controller);
$model = rtrim($controller, 's');
$controller .= 'Controller';
$dispatch = new $controller($model, $controller_name, $action);
if ((int)method_exists($controller, $action)) {
// I get the error after this function call
call_user_func_array(array($dispatch, $action), $queryString);
} else {
/* error */
}
}
该函数从URL加载的一些参数,然后调用正确的控制器,后call_user_func_array调用它应该加载相应的控制器PHP文件但我得到这个错误:
Parse error: syntax error, unexpected T_STRING in /web/htdocs/www.mysite.com/home/app/application/controllers/CONTROLLERFILE.php on line 1
这发生在每个控制器上。 我试图检查此调用之前的代码,但由于它在本地主机上正常工作,我不知道该看什么。我所知道的唯一的区别是魔术引号是关在本地主机上,并在服务器上,但我不知道这是否
编辑 此外,每个控制器的启动是:
<?php
class ControllerName extends Controller {
localhost是一个Windows系统我的服务器是Linux的一个,如果这可能很重要。
演示:http://codepad.org/ hkA9UTt7没有得到你发布的分析错误。 –
确认我也正确解析。 –
@Jared Farrish:自己尝试一下:http://www.dovemangiostasera.com/app/place/view/1 –