Home > Backend Development > PHP Tutorial > 请求来解答

请求来解答

WBOY
Release: 2016-06-13 13:48:33
Original
932 people have browsed it

请求高手进来解答,在线等

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->class Smarty_Internal_Write_File {
    /**
     * Writes file in a save way to disk
     * 
     * @param string $_filepath complete filepath
     * @param string $_contents file content
     * @return boolean true
     */
    public static function writeFile($_filepath, $_contents, $smarty)
    {
        $old_umask = umask(0);
        $_dirpath = dirname($_filepath); 
        // if subdirs, create dir structure
        if ($_dirpath !== '.' && !file_exists($_dirpath)) {
            mkdir($_dirpath, $smarty->_dir_perms, true);
        } 
        // write to tmp file, then move to overt file lock race condition
        $_tmp_file = tempnam($_dirpath, 'wrt');

        if (!($fd = @fopen($_tmp_file, 'wb'))) {
            $_tmp_file = $_dirpath . DS . uniqid('wrt');
            if (!($fd = @fopen($_tmp_file, 'wb'))) {
            throw new SmartyException("unable to write file {$_tmp_file}");
            return false;
            }
            }

        fwrite($fd, $_contents);
        fclose($fd);

        // remove original file
        if (file_exists($_filepath))
            @unlink($_filepath); 
        // rename tmp file
        rename($_tmp_file, $_filepath); 
        // set file permissions
        chmod($_filepath, $smarty->_file_perms);
        umask($old_umask);
        return true;
    } 
} 

Copy after login


详细点翻译下这段代码是什么意思,紧急用,在线等

------解决方案--------------------
class Smarty_Internal_Write_File {
/**
* Writes file in a save way to disk

* @param string $_filepath complete filepath
* @param string $_contents file content
* @return boolean true
*/
public static function writeFile($_filepath, $_contents, $smarty)
{
$old_umask = umask(0);
$_dirpath = dirname($_filepath); //$_filepath的路径
// if subdirs, create dir structure
if ($_dirpath !== '.' && !file_exists($_dirpath)) {//路径(文件夹)不存在
mkdir($_dirpath, $smarty->_dir_perms, true);//创建

// write to tmp file, then move to overt file lock race condition
$_tmp_file = tempnam($_dirpath, 'wrt');//tempnam应该是转换路径到配置的模板转换保存目录,就是smarty模板文件转换成php代码文件的文件存放的位置

if (!($fd = @fopen($_tmp_file, 'wb'))) {//检查目录是否可以操作
$_tmp_file = $_dirpath . DS . uniqid('wrt');//转换文件名
if (!($fd = @fopen($_tmp_file, 'wb'))) {
throw new SmartyException("unable to write file {$_tmp_file}");
return false;
}
}

fwrite($fd, $_contents);//写转换后的内容,就是把smarty代码转换成php代码,
fclose($fd);

// remove original file
if (file_exists($_filepath))
@unlink($_filepath); 
// rename tmp file
rename($_tmp_file, $_filepath); 
// set file permissions
chmod($_filepath, $smarty->_file_perms);
umask($old_umask);
return true;




Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template