php创建文件、读文件和写文件,代码如下:

<?php 
class cfile { 
    protected $thepath; 
    
    
    //Error messages in the form of constants for ease of use. 
    const FOUNDERROR = \"Sorry, the file in question does not exist.\"; 
    const PERMERROR = \"Sorry, you do not have the proper permissions on this file\"; 
    const OPENERROR = \"Sorry, the file in question could not be opened.\"; 
    const CLOSEERROR = \"Sorry, the file could not be closed.\"; 
    
    
    //The constructor function. 
    public function __construct (){ 
        $num_args = func_num_args(); 
        
        if($num_args > 0){ 
            $args = func_get_args(); 
            $this->thepath = $args[0]; 
        } 
    } 


    //A function to open the file. 
    /* http://www.manongjc.com/article/1343.html */
    private function openfile ($readorwrite){ 
    //First, ensure the file exists. 
    try { 
        if (file_exists ($this->thepath)){ 
            //Now, you need to see if you are reading or writing or both. 
            $proceed = false; 
            if ($readorwrite == \"r\"){ 
                if (is_readable($this->thepath)){ 
                    $proceed = true; 
                } 
            } elseif ($readorwrite == \"w\"){ 
                if (is_writable($this->thepath)){ 
                    $proceed = true; 
                } 
            } else { 
                if (is_readable($this->thepath) && is_writable($this->thepath)){ 
                    $proceed = true; 
                } 
            } 
            try { 
                if ($proceed){ 
                    //You can now attempt to open the file. 
                    try { 
                        if ($filepointer = fopen ($this->thepath, $readorwrite)){ 
                            return $filepointer; 
                        } else { 
                            throw new exception (self::OPENERROR); 
                            return false; 
                        } 
                    } catch (exception $e) { 
                        echo $e->getmessage(); 
                    } 
                } else { 
                    throw new exception (self::PERMERROR); 
                } 
            } catch (exception $e) { 
                echo $e->getmessage(); 
            } 
        } else { 
            throw new exception (self::FOUNDERROR); 
        } 
    } catch (exception $e) { 
        echo $e->getmessage(); 
    } 
    } 
    
    //A function to close a file. 
    function closefile () { 
    try { 
    if (!fclose ($this->thepath)){ 
    throw new exception (self::CLOSEERROR); 
    } 
    } catch (exception $e) { 
    echo $e->getmessage(); 
    } 
    } 
    
    //A function to read a file, then return the results of the read in a string. 
    
    public function read () { 
    //First, attempt to open the file. 
    $filepointer = $this->openfile (\"r\"); 
    
    //Now, return a string with the read data. 
    
    
    if ($filepointer != false){ 
    //Then you can read the file. 
    return fread ($filepointer,filesize ($this->thepath)); 
    
    } 
    
    //Lastly, close the file. 
    $this->closefile (); 
    } 
    
    
    //A function to write to a file. 
    
    public function write ($towrite) { 
    //First, attempt to open the file. 
    $filepointer = $this->openfile (\"w\"); 
    
    
    //Now, return a string with the read data. 
    
    if ($filepointer != false){ 
    //Then you can read the file. 
    return fwrite ($filepointer, $towrite); 
    
    
    } 
    
    //Lastly, close the file. 
    $this->closefile (); 
    } 
    
    
    //A function to append to a file. 
    
    public function append ($toappend) { 
    //First, attempt to open the file. 
    $filepointer = $this->openfile (\"a\"); 
    
    
    //Now, return a string with the read data. 
    
    if ($filepointer != false){ 
    //Then you can read the file. 
    return fwrite ($filepointer, $toappend); 
    
    
    } 
    
    //Lastly, close the file. 
    $this->closefile (); 
    } 
    
    
    //A function to set the path to a new file. 
    public function setpath ($newpath) { 
    $this->thepath = $newpath; 
    } 
    
} 

?> 

<?php 
//Include the class. 
require_once (\"file.class.inc.php\"); 
//Then create a new instance of the class. 
$myfile = new cfile (\"data.txt\"); 

//Now, let\'s try reading it. 
echo $myfile->read(); 

//Then let\'s try writing to the file. 
$myfile->write (\"Hello World!\"); 

//Then, let\'s try appending. 
$myfile->append (\"Hello Again!\"); 
?>
收藏 打印