Esempio n. 1
0
 /**
  * データphp形式のファイルで、末尾にデータを追加する
  *
  * @static
  * @return  boolean
  */
 function putDataPhp($data_php, &$cont, $perm = 0606, $ncheck = false)
 {
     if ($cont === "") {
         return true;
     }
     $pre_quote = preg_quote(DataPhp::getPre());
     $hip_quote = preg_quote(DataPhp::getHip());
     $cont_esc = DataPhp::escapeDataPhp($cont);
     $old_cont = @file_get_contents($data_php);
     if ($old_cont) {
         // ファイルが、データphp形式以外の場合は、何もせずにfalseを返す
         if (!preg_match("/^\\s*<\\?php\\s\\/\\*/", $old_cont)) {
             trigger_error(__FUNCTION__ . '() file is broken.', E_USER_WARNING);
             return false;
         }
         $old_cut = preg_replace('{' . $hip_quote . '.*$}s', '', $old_cont);
         // 指定に応じて、古い内容の末尾が改行でなければ、改行を追加する
         if ($ncheck) {
             if (substr($old_cut, -1) != "\n") {
                 $old_cut .= "\n";
             }
         }
         $new_cont = $old_cut . $cont_esc . DataPhp::getHip();
         // データ内容がまだなければ、新規データphp
     } else {
         $new_cont = DataPhp::getPre() . $cont_esc . DataPhp::getHip();
     }
     FileCtl::make_datafile($data_php, $perm);
     if (false === file_put_contents($data_php, $new_cont, LOCK_EX)) {
         // die("Error: ファイルを更新できませんでした");
         return false;
     }
     return true;
 }
Esempio n. 2
0
 /**
  * データphp形式のファイルで、末尾にデータを追加する
  */
 public static function putDataPhp($data_php, $cont, $perm = 0606, $ncheck = false)
 {
     if ($cont === "") {
         return true;
     }
     $pre_quote = preg_quote(DataPhp::getPre());
     $hip_quote = preg_quote(DataPhp::getHip());
     $cont_esc = DataPhp::escapeDataPhp($cont);
     $old_cont = FileCtl::file_read_contents($data_php);
     if ($old_cont) {
         // ファイルが、データphp形式以外の場合は、何もせずにfalseを返す
         if (!preg_match("/^\\s*<\\?php\\s\\/\\*/", $old_cont)) {
             trigger_error('putDataPhp() file is broken.', E_USER_WARNING);
             return false;
         }
         $old_cut = preg_replace('{' . $hip_quote . '.*$}s', '', $old_cont);
         // 指定に応じて、古い内容の末尾が改行でなければ、改行を追加する
         if ($ncheck) {
             if (substr($old_cut, -1) != "\n") {
                 $old_cut .= "\n";
             }
         }
         $new_cont = $old_cut . $cont_esc . DataPhp::getHip();
         // データ内容がまだなければ、新規データphp
     } else {
         $new_cont = DataPhp::getPre() . $cont_esc . DataPhp::getHip();
     }
     // ファイルがなければ生成
     FileCtl::make_datafile($data_php, $perm);
     // 書き込む
     $fp = @fopen($data_php, 'wb') or p2die("{$data_php} を更新できませんでした");
     flock($fp, LOCK_EX);
     $last = ignore_user_abort(1);
     ftruncate($fp, 0);
     fwrite($fp, $new_cont);
     ignore_user_abort($last);
     flock($fp, LOCK_UN);
     fclose($fp);
     return true;
 }