PHP问题,在本地测试时正确的,但是上传至服务器后就不正确了。我是把把本地数据库导出,在导入到服务器
PHP问题,在本地测试时正确的,但是上传至服务器后就不正确了。我是把把本地数据库导出,再导入到服务器,错误提示信息是Parseerror:syntaxerror,unex...
PHP问题,在本地测试时正确的,但是上传至服务器后就不正确了。我是把把本地数据库导出,再导入到服务器,错误提示信息是Parse error: syntax error, unexpected T_FUNCTION in /home/wwwroot/townle/public_html/townle_yuncart/include/admin/dumpdb.class.php on line 92。,下面我贴出代码,希望大神能帮忙一下 (第92行是 $lines = array_filter(file($file),function($line){)先奉上100分。
/**
*
* 导入备份文件
*
*/
function import() {
$file = $this->sqlfiledir . "/".$this->filename . "_".$this->vol.".sql" ;
if(!is_file($file)) return false;
$lines = array_filter(file($file),function($line){
return substr($line,0,2) != "/*";
});
$sqlstr = str_replace("\r",'',implode('',$lines));
$ret = explode(";\n",$sqlstr);
$ret_count = count($ret);
for($i =0;$i < $ret_count;$i++) {
$sql = rtrim($ret[$i],"\r\n;");
if(!$sql) continue;
//删除不符合条件的记录
if( preg_match("/(?:DROP TABLE IF EXISTS|CREATE TABLE|INSERT INTO) `(.+?)`/",$sql,$matches) && !in_array($matches[1],$this->exclude) ) {
DB::getDB()->query($sql);
}
}
return true;
}
/**
*
* 处理null
*
*/ 展开
/**
*
* 导入备份文件
*
*/
function import() {
$file = $this->sqlfiledir . "/".$this->filename . "_".$this->vol.".sql" ;
if(!is_file($file)) return false;
$lines = array_filter(file($file),function($line){
return substr($line,0,2) != "/*";
});
$sqlstr = str_replace("\r",'',implode('',$lines));
$ret = explode(";\n",$sqlstr);
$ret_count = count($ret);
for($i =0;$i < $ret_count;$i++) {
$sql = rtrim($ret[$i],"\r\n;");
if(!$sql) continue;
//删除不符合条件的记录
if( preg_match("/(?:DROP TABLE IF EXISTS|CREATE TABLE|INSERT INTO) `(.+?)`/",$sql,$matches) && !in_array($matches[1],$this->exclude) ) {
DB::getDB()->query($sql);
}
}
return true;
}
/**
*
* 处理null
*
*/ 展开
4个回答
展开全部
检查服务器和本地程序运行环境的差异,主要是php版本,数据库,服务器及其版本,还有就是操作系统了,有不同,可能就是这些不同引起的。请仔细排除,祝你好运。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以检查下你的php版本
你使用了匿名函数,这个特性只有php 5.3以上版本才支持
你可以检查一下本地和服务器上的php版本对比一下
你使用了匿名函数,这个特性只有php 5.3以上版本才支持
你可以检查一下本地和服务器上的php版本对比一下
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$file = $this->sqlfiledir . "/".$this->filename . "_".$this->vol.".sql" ;
你将这个 打印出来 再跟你本地的比较一下 应该就明白了的! 服务器上的目录 跟 本地肯定不相同,希望能帮助你
你将这个 打印出来 再跟你本地的比较一下 应该就明白了的! 服务器上的目录 跟 本地肯定不相同,希望能帮助你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
擦。没注意,居然用了函数式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询