取消设置后更新txt文件

时间:2018-02-18 07:14:27

标签: php string

问题是removeBlog会逐行删除所有行。 我认为我对foreach / fwrite部分有错误。 这是课程消息:

 class Message
{
protected $blogLista=[];
protected $file = "blog_tmp/blogdata.txt";

function __construct()
{
    if(file_exists($this->file)) {
        $txt = fopen($this->file,"r");
        while (!feof($txt)) {
            $line = fgets($txt);
            if (!empty($line)) {
                $line_arr = explode(",", $line);
                $obj = new Blog ($line_arr[0], $line_arr[1], $line_arr[2]);
                $this->blogLista[] = $obj;
            }
        }
        fclose($txt);
    }

  }

  function addBlog($nam,$mes,$dat){
    $txtx=fopen($this->file,"a");
    fwrite($txtx, "$nam,$mes,$dat".PHP_EOL);
    fclose($txtx);
 }

 function removeBlog($ind){
    unset($this->blogLista[$ind]);
    $var=fopen($this->file,"w+");
    //fwrite($var,$this->blogLista);

    foreach ($this->blogLista as $key=>$val){
        fwrite($var,"$val->getName(),$val->getMessage,$val->getDate") ;
    }


    fclose($var);
  }


  function getBlogLista(){
    return $this->blogLista;
  }
}

问题是removeBlog会逐行删除所有行。 我认为我对foreach / fwrite部分有错误。 这是博客部分:

 class Blog
 {

  protected $name='';
  protected $message='';
  protected $date='';

  function __construct($nam,$mes,$dat)
  {
    $this->name=$nam;
    $this->message=$mes;
    $this->date=$dat;
}

function getName(){
    return $this->name;
}

function getMessage(){
    return $this->message;
 }

 function getDate(){
    return $this->date;
 }
}

1 个答案:

答案 0 :(得分:1)

当您尝试调用方法时,您错过了方括号find . -iname *.class -exec javap -c -p {} \; | grep "Method <method name, for instance: java/lang> | sed 's:.*// ::' | sort | uniq -c | sort -h ,并且您无法在双引号内调用方法,例如 [1]

尝试替换为:

()

而不是:

fwrite($var,$val->getName().','.$val->getMessage().','.$val->getDate()) ;

[1]见@NigelRen的评论