请求来解答

Jun 13, 2016 pm 01:48 PM
file filepath smarty tmp

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

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;
    } 
} 

Salin selepas log masuk


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

------解决方案--------------------
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;




Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Prinsip pembersihan folder /tmp/ dalam sistem Linux dan peranan fail tmp Prinsip pembersihan folder /tmp/ dalam sistem Linux dan peranan fail tmp Dec 21, 2023 pm 05:36 PM

Prinsip pembersihan folder /tmp/ dalam sistem Linux dan peranan fail tmp

Aplikasi asli Hongmeng puisi rawak Aplikasi asli Hongmeng puisi rawak Feb 19, 2024 pm 01:36 PM

Aplikasi asli Hongmeng puisi rawak

Gunakan fungsi File.length() java untuk mendapatkan saiz fail Gunakan fungsi File.length() java untuk mendapatkan saiz fail Jul 24, 2023 am 08:36 AM

Gunakan fungsi File.length() java untuk mendapatkan saiz fail

Bagaimana untuk menukar gumpalan php kepada fail Bagaimana untuk menukar gumpalan php kepada fail Mar 16, 2023 am 10:47 AM

Bagaimana untuk menukar gumpalan php kepada fail

Namakan semula fail menggunakan fungsi File.renameTo() java Namakan semula fail menggunakan fungsi File.renameTo() java Jul 25, 2023 pm 03:45 PM

Namakan semula fail menggunakan fungsi File.renameTo() java

Apakah maksud tmp dalam linux Apakah maksud tmp dalam linux Mar 10, 2023 am 09:26 AM

Apakah maksud tmp dalam linux

Gunakan fungsi File.getParentFile() java untuk mendapatkan direktori induk fail Gunakan fungsi File.getParentFile() java untuk mendapatkan direktori induk fail Jul 27, 2023 am 11:45 AM

Gunakan fungsi File.getParentFile() java untuk mendapatkan direktori induk fail

Bagaimana untuk mengakses dan membersihkan fail sampah dalam direktori /tmp dalam CentOS 7? Bagaimana untuk mengakses dan membersihkan fail sampah dalam direktori /tmp dalam CentOS 7? Dec 27, 2023 pm 09:10 PM

Bagaimana untuk mengakses dan membersihkan fail sampah dalam direktori /tmp dalam CentOS 7?

See all articles