Code Search for Developers
 
 
  

core.write_file.php from guliverkli at Krugle


Show core.write_file.php syntax highlighted

<?php
/**
 * Smarty plugin
 * @package Smarty
 * @subpackage plugins
 */

/**
 * write out a file to disk
 *
 * @param string $filename
 * @param string $contents
 * @param boolean $create_dirs
 * @return boolean
 */
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);
    }

    // write to tmp file, then rename it to avoid
    // file locking race condition
    $_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);

    // Delete the file if it allready exists (this is needed on Win,
    // because it cannot overwrite files with rename()
    if (file_exists($params['filename'])) {
        @unlink($params['filename']);
    }
    @rename($_tmp_file, $params['filename']);
    @chmod($params['filename'], $smarty->_file_perms);

    return true;
}

/* vim: set expandtab: */

?>




See more files for this project here

guliverkli

Home of VobSub, Media Player Classic (MPC) and other misc utils.

Project homepage: http://sourceforge.net/projects/guliverkli
Programming language(s): C,C++,PHP
License: other

  core.assemble_plugin_filepath.php
  core.assign_smarty_interface.php
  core.create_dir_structure.php
  core.display_debug_console.php
  core.get_include_path.php
  core.get_microtime.php
  core.get_php_resource.php
  core.is_secure.php
  core.is_trusted.php
  core.load_plugins.php
  core.load_resource_plugin.php
  core.process_cached_inserts.php
  core.process_compiled_include.php
  core.read_cache_file.php
  core.rm_auto.php
  core.rmdir.php
  core.run_insert_handler.php
  core.smarty_include_php.php
  core.write_cache_file.php
  core.write_compiled_include.php
  core.write_compiled_resource.php
  core.write_file.php