2016-12-12 9 views
0

私はPHPにはとても新しいので、people.txtファイルに人の名前を書く簡単な関数を作成しようとしています。ファイルに書き込むPHP関数

私は以下のコードから始めました。

<?php 
session_start(); 
$counter_name = "people.txt"; 

if (!file_exists($counter_name)) { 
    $f = fopen($counter_name, "w"); 
    fwrite($f,"0"); 
    fclose($f); 
} 

$f = fopen($counter_name,"r"); 
$person = fread($f, filesize($counter_name)); 
fclose($f); 
$f = fopen($counter_name, "w"); 
fwrite($f, $person); 
fclose($f); 

基本的に私は、ユーザーにこのようなウェブサイト与える:www.mywebsite.com/person.php+personName結果で

を、この人の名前は、ファイルをpeople.txtに追加されます。 新しい人物がこのページにアクセスすると、新しい人物の名前が次の行に追加されます。このようなもの:

person1; 
person2; 
person3; 
... 

この機能の残りの部分を理解するためにいくつかの助けをしてください。

答えて

1
function appendToFile($stringOrArray, $fileName, $eol = true) 
    $fp = fopen('people.txt', 'a'); 
    $e = $eol ? PHP_EOL : ''; 
    if(is_string($stringOrArray)){ 
    fwrite($fp, $stringOrArray.$e); fclose($fp); 
    return true; 
    } 
    elseif(is_array($stringOrArray)){ 
    foreach($stringOrArray as $v){ 
     fwrite($fp, $v.$e); 
    } 
    fclose($fp); 
    return true 
    } 
    else{ 
    die('$stringOrArray must be a String or Array'); 
    } 
    return false; 
} 
appendToFile('Single String', 'people.txt'); 
appendToFile('Another Line', 'people.txt'); 
appendToFile(array('First Array Element' 'Second Array Element'), 'people.txt'); 

ファイルが存在するかどうかは、とにかく作成されるため、表示する必要はありません。また、次のようなクラスを作成します。

class FileHandler{ 
    private $fn, $fp, $md; 
    public function __construct($fileName){ 
    $this->fn = $fileName; 
    } 
    public function getFileName(){ 
    return $thsi->fn; 
    } 
    public function setMode($mode){ 
    $this->md = $mode; $this->fp = fopen($this->fn, $mode); 
    return $this; 
    } 
    public function getFilePointer(){ 
    return $this->fp; 
    } 
    public function getMode(){ 
    return $this->md; 
    } 
    private function fc(){ 
    fclose($this->fp); 
    } 
    public function exec($maybe, $eol = true){ 
    $fp = $this->fp; 
    $e = $eol ? PHP_EOL : ''; 
    switch($this->md){ 
     case 'r': 
     break; 
     case 'r+': 
     break; 
     case 'w': 
     break; 
     case 'w+': 
     break; 
     case 'a': 
     if(is_string($maybe)){ 
      fwrite($fp, $maybe.$e); $this->fc(); 
      return true; 
     } 
     elseif(is_array($maybe)){ 
      foreach($maybe as $v){ 
      fwrite($fp, $v.$e); 
      } 
      $this->fc(); 
      return true; 
     } 
     else{ 
      die('$maybe must be a String or Array with mode \'a\''); 
     } 
     break; 
     case 'a+': 
     break; 
     case 'x': 
     break; 
     case 'x+': 
     break; 
     case 'c': 
     break; 
     case 'c+': 
     break; 
     default: 
     // maybe you want a mode if none is selected 
     break; 
    } 
    return false; 
    } 
} 
$fh = new FileHandler('people.txt'); 
$fh->setMode('a')->exec(array('value 0', 'value 1', 'value 2')); 

もちろん、モードに追加して他のコードを書く必要があります。楽しむ!

+0

私はこのファイルを.phpファイルに保存し、ホストに追加してアクセスできますか?アクセスしなければならない完全なウェブサイトのアドレスはどうですか? www.mywebsite.com/myphpfile.php +名前はここにありますか? '?= property = value&property1 = value&property2 = value2'をそのURLの末尾に追加し、' isset($ _ GET ['property']){appendToFile($ _ GET ['property'])のようなものを使用すると、 – Joe

+0

となります。 } 'あなたは良いことがあります。 – PHPglue

関連する問題