回答を求める

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

専門家にオンラインで待機してもらい、回答してもらいます

PHP コード
<!--

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

ログイン後にコピー


緊急使用のために、オンラインで待機してこのコードを詳しく翻訳してください

------解決策----------------------
class Smarty_Internal_Write_File {
/**
* ファイルをディスクに保存する方法で書き込みます
*
* @param string $_filepath 完全なファイルパス
* @param string $_contents ファイルの内容
* @return boolean true
*/
public static function writeFile($_filepath, $_contents, $smarty)
{
$old_umask = umask(0);
$ _dirpath = dirname($_filepath); // $_filepath のパス
// サブディレクトリの場合、ディレクトリ構造を作成します
if ($_dirpath !== '.' && !file_exists($_dirpath)) {//パス (フォルダー) が存在しません
mkdir($_dirpath, $smarty->_dir_perms, true);//Create
}
// tmp ファイルに書き込み、その後、明白なファイル ロック競合状態に移行します
$_tmp_file = tempnam($_dirpath, 'wrt');//tempnam は、設定されたテンプレート変換保存ディレクトリへの変換パスである必要があります。これは、smarty テンプレート ファイルから PHP コード ファイルに変換されたファイルが保存される場所です

if (!($fd = @fopen($_tmp_file, 'wb'))) {//ディレクトリが操作可能かどうかを確認します
$_tmp_file = $_dirpath DS . );//ファイル名を変換します
if (!($fd = @fopen($_tmp_file, 'wb'))) {
throw new SmartyException("unable to write file {$_tmp_file}");
return false;
}
}

fwrite($fd, $_contents);//smarty コードを PHP コードに変換する、変換されたコンテンツを書き込みます。
fclose($fd);

// 元のファイルを削除
if (file_exists($_filepath))
@unlink($_filepath);
// tmp ファイルの名前を変更
rename ($_tmp_file, $_filepath);
// ファイル権限を設定します
chmod($_filepath, $smarty->_file_perms);
umask($old_umask);
return true;
}
}


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Linuxシステムの/tmp/フォルダーのクリーニング原理とtmpファイルの役割 Linuxシステムの/tmp/フォルダーのクリーニング原理とtmpファイルの役割 Dec 21, 2023 pm 05:36 PM

.tmp ファイルのほとんどは、異常なシャットダウンまたはクラッシュによって残されたファイルです。これらの一時的な仮想記憶ディスクは、コンピュータの再起動後は使用されないため、安全に削除できます。 Windows オペレーティング システムを使用している場合、C ドライブのルート ディレクトリにサフィックス TMP の付いたファイルが見つかることがよくあります。また、Windows ディレクトリにも TEMP ディレクトリが見つかります。TMP ファイルは、さまざまなソフトウェアやソフトウェアによって生成される一時ファイルです。システム。ジャンク ファイルとも呼ばれます。 Windows によって生成される一時ファイルは、本質的には仮想メモリと同じですが、一時ファイルは仮想メモリよりも対象が絞られており、特定のプログラムのみに使用される点が異なります。そして、その特異性により、多くの初心者が怖気づいて削除できなくなりました。

JavaのFile.length()関数を使用してファイルのサイズを取得します。 JavaのFile.length()関数を使用してファイルのサイズを取得します。 Jul 24, 2023 am 08:36 AM

ファイルのサイズを取得するには、Java の File.length() 関数を使用します。ファイル操作を扱うとき、ファイル サイズは非常に一般的な要件です。Java では、ファイルのサイズを取得するための非常に便利な方法、つまり length( ) File クラスのメソッド。この記事では、このメソッドを使用してファイルのサイズを取得する方法と、対応するコード例を紹介します。まず、サイズを取得したいファイルを表す File オブジェクトを作成する必要があります。 File オブジェクトを作成する方法は次のとおりです: Filef

PHP BLOBをファイルに変換する方法 PHP BLOBをファイルに変換する方法 Mar 16, 2023 am 10:47 AM

PHP BLOB をファイルに変換する方法: 1. PHP サンプル ファイルを作成します; 2. 「function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })」を通じて} 」メソッドを使用して、Blob をファイルに変換できます。

紅夢ネイティブアプリケーションのランダムな詩 紅夢ネイティブアプリケーションのランダムな詩 Feb 19, 2024 pm 01:36 PM

オープン ソースの詳細については、次のサイトを参照してください。 51CTO Honmeng 開発者コミュニティ https://ost.51cto.com 実行環境 DAYU200:4.0.10.16SDK: 4.0.10.15IDE: 4.0.600 1. アプリケーションを作成するには、[ファイル] をクリックします。 >新しいファイル ->プロジェクトの作成。テンプレートを選択します: [OpenHarmony] EmptyAbility: プロジェクト名 shici、アプリケーション パッケージ名 com.nut.shici、およびアプリケーションの保存場所 XXX (中国語、特殊文字、スペースは含まれません) を入力します。 CompileSDK10、モデル: ステージ。デバイス

JavaのFile.renameTo()関数を使用してファイルの名前を変更する JavaのFile.renameTo()関数を使用してファイルの名前を変更する Jul 25, 2023 pm 03:45 PM

Java の File.renameTo() 関数を使用してファイルの名前を変更する Java プログラミングでは、ファイルの名前を変更する必要がよくあります。 Java には、ファイル操作を処理するための File クラスが用意されており、その renameTo() 関数でファイルの名前を簡単に変更できます。この記事では、Java の File.renameTo() 関数を使用してファイルの名前を変更する方法と、対応するコード例を紹介します。 File.renameTo() 関数は、File クラスのメソッドです。

CentOS 7 の /tmp ディレクトリにあるジャンク ファイルにアクセスしてクリーンアップする方法は? CentOS 7 の /tmp ディレクトリにあるジャンク ファイルにアクセスしてクリーンアップする方法は? Dec 27, 2023 pm 09:10 PM

centos7システムのtmpディレクトリにゴミが大量にあるのですが、ゴミを削除したい場合はどうすればよいでしょうか?以下の詳細なチュートリアルを見てみましょう。 tmp ファイル ディレクトリ内のファイルのリストを表示するには、コマンド cdtmp/ を実行して tmp の現在のファイル ディレクトリに切り替え、ll コマンドを実行して現在のディレクトリ内のファイルのリストを表示します。以下に示すように。ファイルを削除するには、rm コマンドを使用します。rm コマンドはファイルをシステムから永久に削除することに注意してください。したがって、rm コマンドを使用するときは、ファイルを削除する前にプロンプ​​トを表示することをお勧めします。コマンド rm-i file name を使用し、ユーザーが削除を確認する (y) か削除をスキップする (n) まで待つと、システムは対応する操作を実行します。以下に示すように。

Linux での tmp の意味 Linux での tmp の意味 Mar 10, 2023 am 09:26 AM

Linux では、tmp は一時ファイルを保存するフォルダを指します。このフォルダには、システムとユーザーによって作成された一時ファイルが含まれます。tmp フォルダのデフォルトの制限時間は 30 日です。30 日間アクセスされなかった tmp 下のファイルは、自動的に保存されます。システムによって削除されました。

JavaのFile.getParent()関数を使用してファイルの親パスを取得します。 JavaのFile.getParent()関数を使用してファイルの親パスを取得します。 Jul 24, 2023 pm 01:40 PM

ファイルの親パスを取得するには、Java の File.getParent() 関数を使用します Java プログラミングでは、ファイルやフォルダーを操作する必要がよくあります。場合によっては、ファイルの親パス、つまりファイルが存在するフォルダーのパスを取得する必要があることがあります。 Java の File クラスには、ファイルまたはフォルダーの親パスを取得する getParent() メソッドが用意されています。 File クラスは、ファイルとフォルダーを Java で抽象表現したもので、ファイルとフォルダーを操作するための一連のメソッドを提供します。その中で、手に入れてください

See all articles