这篇文章主要为大家详细介绍了php Smarty临时文件创建失败的解决办法,具有一定的参考价值,可以用来参考一下。
对php Smarty临时文件创建失败的解决办法感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
/**
* php Smarty临时文件创建失败的解决办法
*
* @param
* @arrange 512-笔记网: www.q1010.com
**/
function smarty_core_write_file($params, &$smarty){
$_dirname=dirname($params['filename']);
if($params['create_dirs']) { $_params=array('dir'=>$_dirname);
require_once(SMARTY_CORE_DIR . 'core.create_dir_structure.php');
smarty_core_create_dir_structure($_params, $smarty);
}
/**以下代码需要修改**/
$_tmp_file=tempnam($_dirname, 'wrt');
if(!($fd=@fopen($_tmp_file, 'wb'))) {
$_tmp_file=$_dirname . DIRECTORY_SEPARATOR . uniqid('wrt');
if(!($fd=@fopen($_tmp_file, 'wb'))) {
$smarty->trigger_error("problem writing temporary file '$_tmp_file'"); return false;
}
}
fwrite($fd, $params['contents']);
fclose($fd);
if(DIRECTORY_SEPARATOR == '\\' || !@rename($_tmp_file, $params['filename'])){
@unlink($params['filename']);
@rename($_tmp_file, $params['filename']);
}
@chmod($params['filename'], $smarty->_file_perms);
return true;
}
/*** 来自四海网(www.q1010.com) ***/
/**
* php Smarty临时文件创建失败的解决办法
*
* @param
* @arrange 512-笔记网: www.q1010.com
**/
function smarty_core_write_file($params, &$smarty){
$_dirname=dirname($params['filename']);
if($params['create_dirs']) {
$_params=array('dir'=>$_dirname);
require_once(SMARTY_CORE_DIR . 'core.create_dir_structure.php');
smarty_core_create_dir_structure($_params, $smarty);
}
/**修改为如下代码**/
$fd=@fopen( $params['filename'], 'wb');
if(!$fd){
return false;
}
fwrite($fd, $params['contents']);
fclose($fd);
@chmod($params['filename'], $smarty->_file_perms);
return true;
}
/*** 来自四海网(www.q1010.com) ***/
做以上修改虽可以解决这个问题,但如代码中注释所述,这个机制是为了解决文件死锁如写冲突一类的问题的,所以这种处理方法会有可能导致生成临时文件的时候出错,但经过本人自己试用,发现还没有出过错,所以大胆的改吧。
本文来自:http://www.q1010.com/173/1378-0.html
注:关于php Smarty临时文件创建失败的解决办法的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:Smarty
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。