定义这个函数为什么会出错
我用的是php5.5.12
我只是初哥,代码是老板买回来的,运行到这个函数的时候接不上了
/**
* 判断是否缓存
*
* @access public
* @param string $filename
* @param sting $cache_id
*
* @return bool
*/
function is_cached($filename,$cache_id = '')
{
$cachename = basename($filename, strrchr($filename, '.')) . '_' . $cache_id;
if ($this->caching == true && $this->direct_output == false)
{
$hash_dir = $this->cache_dir . '/' . substr(md5($cachename), 0, 1);
if ($data = @file_get_contents($hash_dir . '/' . $cachename . '.php'))
{
$data = substr($data, 13);
$pos = strpos($data, ' $paradata = substr($data, 0, $pos);
$para = @unserialize($paradata);
if ($para === false || $this->_nowtime > $para['expires'])
{
$this->caching = false;
return false;
};
$this->_expires = $para['expires'];
$this->template_out = substr($data, $pos);
foreach ($para['template'] AS $val)
{
$stat = @stat($val);
if ($para['maketime'] {
$this->caching = false;
return false;
}
};
}
else
{
$this->caching = false;
return false;
};
return true;
}
else
{
return false;
}
}
回复讨论(解决方案)
Parse error: syntax error, unexpected 'function'
语法错误,意想不到的“function”
错误出现在 cls_template.php 第 313 行之前
你认真检查一下
public function
检查了一下是不是我上面修改的有问题:
原来:return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);
修改:return preg_replace_callback("/{([^\}\{\n]*)}/", function($r){return $this->select($r[1]);};
这是我百度的,现在看来是上面的有问题,大家能不能帮修改一下,这是因为PHP的源代码是5.2,我用的版本是5.5.12
313是哪行?
return preg_replace_callback("/{([^\}\{\n]*)}/", function($r){return $this->select($r[1]);} , $source);
尾巴怎么丢了?
ECSHOP不支持PHP5.5,真是郁闷啊,错误实在是太那个多
我这个初鸡,真是搞不了,求大虾有搞过ECSHOP的,能不能发个对照表过来,让我自己学习并搞好
我使用php5.3.10 没问题,版本太多,ecshop有些东西不支持,建议更换版本。
语法错误,仔细检查一下吧
还是装了php5.2.x上去,问题就没有了
谢谢大家
上一篇: PHp + socket编程练习回复
下一篇: 深入解析php之sphinx