Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php// +----------------------------------------------------------------------+// | PHP Version 4 |// +----------------------------------------------------------------------+// | Copyright (c) 1997-2004 The PHP Group |// +----------------------------------------------------------------------+// | This source file is subject to version 3.0 of the PHP license, |// | that is bundled with this package in the file LICENSE, and is |// | available at through the world-wide-web at |// | http://www.php.net/license/3_0.txt. |// | If you did not receive a copy of the PHP license and are unable to |// | obtain it through the world-wide-web, please send a note to |// | license@php.net so we can mail you a copy immediately. |// +----------------------------------------------------------------------+// | Authors: Aidan Lister <aidan@php.net> |// +----------------------------------------------------------------------+//// $Id: file_put_contents.php,v 1.25 2005/12/05 09:25:15 aidan Exp $if (!defined('FILE_USE_INCLUDE_PATH')) {define('FILE_USE_INCLUDE_PATH', 1);}if (!defined('LOCK_EX')) {define('LOCK_EX', 2);}if (!defined('FILE_APPEND')) {define('FILE_APPEND', 8);}/*** Replace file_put_contents()** @category PHP* @package PHP_Compat* @link http://php.net/function.file_put_contents* @author Aidan Lister <aidan@php.net>* @version $Revision: 1.25 $* @internal resource_context is not supported* @since PHP 5* @require PHP 4.0.0 (user_error)*/if (!function_exists('file_put_contents')) {function file_put_contents($filename, $content, $flags = null, $resource_context = null){// If $content is an array, convert it to a stringif (is_array($content)) {$content = implode('', $content);}// If we don't have a string, throw an errorif (!is_scalar($content)) {user_error('file_put_contents() The 2nd parameter should be either a string or an array',E_USER_WARNING);return false;}// Get the length of data to write$length = strlen($content);// Check what mode we are using$mode = ($flags & FILE_APPEND) ?'a' :'wb';// Check if we're using the include path$use_inc_path = ($flags & FILE_USE_INCLUDE_PATH) ?true :false;// Open the file for writingif (($fh = @fopen($filename, $mode, $use_inc_path)) === false) {user_error('file_put_contents() failed to open stream: Permission denied',E_USER_WARNING);return false;}// Attempt to get an exclusive lock$use_lock = ($flags & LOCK_EX) ? true : false ;if ($use_lock === true) {if (!flock($fh, LOCK_EX)) {return false;}}// Write to the file$bytes = 0;if (($bytes = @fwrite($fh, $content)) === false) {$errormsg = sprintf('file_put_contents() Failed to write %d bytes to %s',$length,$filename);user_error($errormsg, E_USER_WARNING);return false;}// Close the handle@fclose($fh);// Check all the data was writtenif ($bytes != $length) {$errormsg = sprintf('file_put_contents() Only %d of %d bytes written, possibly out of free disk space.',$bytes,$length);user_error($errormsg, E_USER_WARNING);return false;}// Return lengthreturn $bytes;}}?>