PHP 関数 tempnam() を使用して PHP が無効になっている場合、tempnam() は一時ファイルを作成でき、そのファイル名は同じディレクトリ内のファイルと重複しません。
返される文字列は、作成された一時ファイル名です。エラーが発生した場合は、空の文字列が返されます。
Smarty を実行するには、templates_c のようなコンパイル ディレクトリを設定する必要があります。実行後、%%
のようなものが自動的に作成されます。
43^43B^43B32F4B%%index.htm.php 一時ファイルなので、tempnam()を無効にした後は、当然%%
のようなものを自動的に作成することはできません。
43^43B^43B32F4B%%index.htm.phpの一時ファイルは%%
のように自動的に作成されます
43^43B^43B32F4B%%index.htm.php の一時ファイルは空です
Smarty で tempnam 関数を使用するプログラムは、次のように、internals/core.write_file.php です。
PHP コード:---------------------------------------------- -- --------------------------
// tmp ファイルに書き込み、それを避けるために名前を変更します
// ファイルロックの競合状態
$_tmp_file = tempnam($_dirname, 'wrt');
if (!($fd = @fopen($_tmp_file, 'wb'))) {
$_tmp_file = $_dirname .UNIQID('wrt');
if (!($fd = @fopen($_tmp_file, 'wb'))) {
$smarty->trigger_error("一時ファイル '$_tmp_file' の書き込み中に問題が発生しました");
false を返します;
}
}
fwrite($fd, $params['contents']);
fclose($fd);