本文整理匯總了PHP中FileCtl::make_datafile方法的典型用法代碼示例。如果您正苦於以下問題:PHP FileCtl::make_datafile方法的具體用法?PHP FileCtl::make_datafile怎麽用?PHP FileCtl::make_datafile使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類FileCtl
的用法示例。
在下文中一共展示了FileCtl::make_datafile方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: set
/**
* ImageCache2 の一時的な有効・無効を切り替える
*
* @param bool $switch
* @param bool $mobile
* @return bool
*/
public static function set($switch, $mobile = false)
{
global $_conf;
$switch_file = $_conf['expack.ic2.switch_path'];
if (!file_exists($switch_file)) {
FileCtl::make_datafile($switch_file);
$flags = self::ENABLED_ALL;
} else {
$flags = self::ENABLED_ALL & filesize($switch_file);
}
if ($switch) {
if ($mobile) {
$flags |= self::ENABLED_MOBILE;
} else {
$flags |= self::ENABLED_PC;
}
} else {
if ($mobile) {
$flags &= ~self::ENABLED_MOBILE;
} else {
$flags &= ~self::ENABLED_PC;
}
}
if ($flags > 0) {
$data = str_repeat('*', $flags);
} else {
$data = '';
}
return file_put_contents($switch_file, $data, LOCK_EX) === $flags;
}
示例2: setFav
/**
* お気にスレをセットする関數
*
* $setfav は、'0'(解除), '1'(追加), 'top', 'up', 'down', 'bottom'
*
* @access public
* @return boolean
*/
function setFav($host, $bbs, $key, $setfav)
{
global $_conf;
if (P2Validate::host($host) || P2Validate::bbs($bbs) || P2Validate::key($key)) {
return false;
}
// スレッド.idx 記録
$data = _setFavToKeyIdx($host, $bbs, $key, $setfav);
$newlines = array();
$before_line_num = 0;
if (false === FileCtl::make_datafile($_conf['favlist_file'], $_conf['favlist_perm'])) {
return false;
}
if (false === ($favlines = file($_conf['favlist_file']))) {
return false;
}
// 最初に重複要素を削除しておく
if (!empty($favlines)) {
$i = -1;
foreach ($favlines as $line) {
$i++;
$line = rtrim($line);
$lar = explode('<>', $line);
// 重複回避
if ($lar[1] == $key && $lar[11] == $bbs) {
$before_line_num = $i;
// 移動前の行番號をセット
continue;
// keyのないものは不正データなのでスキップ
} elseif (!$lar[1]) {
continue;
} elseif (P2Validate::host($lar[10]) || P2Validate::bbs($lar[11]) || P2Validate::key($lar[1])) {
continue;
} else {
$newlines[] = $line;
}
}
}
if (!empty($GLOBALS['brazil'])) {
//$newlines = _removeLargeFavlistData($newlines);
}
// 記録データ設定
if ($setfav) {
$newdata = implode('<>', array(geti($data[0]), $key, geti($data[2]), geti($data[3]), geti($data[4]), geti($data[5]), 1, geti($data[7]), geti($data[8]), geti($data[9]), $host, $bbs));
require_once P2_LIB_DIR . '/getSetPosLines.func.php';
$rec_lines = getSetPosLines($newlines, $newdata, $before_line_num, $setfav);
} else {
$rec_lines = $newlines;
}
if (false === file_put_contents($_conf['favlist_file'], $rec_lines ? implode("\n", $rec_lines) . "\n" : '', LOCK_EX)) {
trigger_error(sprintf('file_put_contents(%s)', $_conf['favlist_file']), E_USER_WARNING);
return false;
}
// お気にスレ共有
_setFavRank($host, $bbs, $key, $setfav, geti($data[0]));
return true;
}
示例3: editFile
/**
* ファイル內容を読み込んで編集する関數
*/
function editFile($path, $encode, $title)
{
global $_conf, $modori_url, $rows, $cols, $csrfid;
if ($path == '') {
p2die('path が指定されていません');
}
$filename = basename($path);
$ptitle = 'Edit: ' . p2h($title) . ' (' . $filename . ')';
//ファイル內容読み込み
FileCtl::make_datafile($path) or p2die("cannot make file. ({$path})");
$cont = file_get_contents($path);
if ($encode == "EUC-JP") {
$cont = mb_convert_encoding($cont, 'CP932', 'CP51932');
}
$cont_area = p2h($cont);
if ($modori_url) {
$modori_url_ht = "<p><a href=\"{$modori_url}\">Back</a></p>\n";
} else {
$modori_url_ht = '';
}
$rows_at = $rows > 0 ? sprintf(' rows="%d"', $rows) : '';
$cols_at = $cols > 0 ? sprintf(' cols="%d"', $cols) : '';
// プリント
echo $_conf['doctype'];
echo <<<EOHEADER
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
{$_conf['extra_headers_ht']}
<title>{$ptitle}</title>
</head>
<body onload="top.document.title=self.document.title;">
EOHEADER;
$info_msg_ht = P2Util::getInfoHtml();
echo $modori_url_ht;
echo $ptitle;
echo <<<EOFORM
<form action="{$_SERVER['SCRIPT_NAME']}" method="post" accept-charset="{$_conf['accept_charset']}">
<input type="hidden" name="file" value="{$filename}">
<input type="hidden" name="modori_url" value="{$modori_url}">
<input type="hidden" name="encode" value="{$encode}">
<input type="hidden" name="rows" value="{$rows}">
<input type="hidden" name="cols" value="{$cols}">
<input type="hidden" name="csrfid" value="{$csrfid}">
<input type="submit" name="submit" value="Save">
{$info_msg_ht}<br>
<textarea style="font-size:9pt;" id="filecont" name="filecont" wrap="off"{$rows_at}{$cols_at}>{$cont_area}</textarea>
{$_conf['detect_hint_input_ht']}{$_conf['k_input_ht']}
</form>
EOFORM;
echo '</body></html>';
return true;
}
示例4: setPalace
/**
* スレを殿堂入りにセットする関數
*
* $set は、0(解除), 1(追加), top, up, down, bottom
*
* @access public
* @return boolean
*/
function setPalace($host, $bbs, $key, $set)
{
global $_conf;
$idxfile = P2Util::getKeyIdxFilePath($host, $bbs, $key);
// 既に key.idx データがあるなら読み込む
if (file_exists($idxfile) and $lines = file($idxfile)) {
$l = rtrim($lines[0]);
$data = explode('<>', $l);
}
if (false === FileCtl::make_datafile($_conf['palace_file'], $_conf['palace_perm'])) {
return false;
}
if (false === ($pallines = file($_conf['palace_file']))) {
return false;
}
$newlines = array();
$before_line_num = 0;
// {{{ 最初に重複要素を削除しておく
if (!empty($pallines)) {
$i = -1;
foreach ($pallines as $l) {
$i++;
$l = rtrim($l);
$lar = explode('<>', $l);
// 重複回避
if ($lar[1] == $key && $lar[11] == $bbs) {
$before_line_num = $i;
// 移動前の行番號をセット
continue;
// keyのないものは不正データなのでスキップ
} elseif (!$lar[1]) {
continue;
} else {
$newlines[] = $l;
}
}
}
// }}}
if (!empty($GLOBALS['brazil'])) {
//$newlines = _removeLargePallistData($newlines);
}
// 新規データ設定
if ($set) {
$newdata = implode('<>', array(geti($data[0]), $key, geti($data[2]), geti($data[3]), geti($data[4]), geti($data[5]), geti($data[6]), geti($data[7]), geti($data[8]), geti($data[9]), $host, $bbs));
require_once P2_LIB_DIR . '/getSetPosLines.func.php';
$rec_lines = getSetPosLines($newlines, $newdata, $before_line_num, $set);
} else {
$rec_lines = $newlines;
}
if (false === FileCtl::filePutRename($_conf['palace_file'], $rec_lines ? implode("\n", $rec_lines) . "\n" : '')) {
trigger_error(sprintf('p2 error: %s(), FileCtl::filePutRename() failed.', __FUNCTION__), E_USER_WARNING);
return false;
}
return true;
}
示例5: __construct
/**
* コンストラクタ
*
* @param string $filename
* @param bool $allow_linebreaks
*/
public function __construct($filename, $allow_linebreaks = false)
{
if (!file_exists($filename)) {
FileCtl::make_datafile($filename);
$this->_data = array();
} else {
$content = FileCtl::file_read_contents($filename);
if (!$content || !is_array($this->_data = @unserialize($content))) {
$this->_data = array();
}
}
$this->_filename = $filename;
$this->_allowLinebreaks = $allow_linebreaks;
}
示例6: load_cache
public function load_cache()
{
global $_conf;
$lines = array();
$path = $_conf['pref_dir'] . '/' . $this->cacheFilename;
FileCtl::make_datafile($path);
if ($lines = @file($path)) {
foreach ($lines as $l) {
list($key, $data) = explode("\t", trim($l));
if (strlen($key) == 0 || strlen($data) == 0) {
continue;
}
$this->cacheData[$key] = unserialize($data);
}
}
$this->cacheIsLoaded = true;
return $this->cacheData;
}
示例7: saveMatomeCache
/**
* 新著まとめ読みのキャッシュを殘す
*
* @access public
* register_shutdown_function() から呼ばれる。(相対パスのファイルは扱えない?)
*/
function saveMatomeCache()
{
global $_conf;
if (!empty($GLOBALS['_is_matome_shinchaku_naipo'])) {
return true;
}
// ローテーション
$max = $_conf['matome_cache_max'];
$i = $max;
while ($i >= 0) {
$di = $i == 0 ? '' : '.' . $i;
$tfile = $_conf['matome_cache_path'] . $di . $_conf['matome_cache_ext'];
$next = $i + 1;
$nfile = $_conf['matome_cache_path'] . '.' . $next . $_conf['matome_cache_ext'];
if (file_exists($tfile)) {
if ($i == $max) {
unlink($tfile);
} else {
if (strstr(PHP_OS, 'WIN') and file_exists($nfile)) {
unlink($nfile);
}
rename($tfile, $nfile);
}
}
$i--;
}
// 新規記録
$file = $_conf['matome_cache_path'] . $_conf['matome_cache_ext'];
//echo "<!-- {$file} -->";
FileCtl::make_datafile($file, $_conf['p2_perm']);
if (false === file_put_contents($file, $GLOBALS['_read_new_html'], LOCK_EX)) {
trigger_error(sprintf('file_put_contents(%s)', $file), E_USER_WARNING);
die('Error: cannot write file.');
return false;
}
return true;
}
示例8: save
/**
* フィルタリング設定をファイルに保存する
*
* @param void
* @return void
*/
public function save()
{
global $_conf;
$cachefile = $_conf['pref_dir'] . '/p2_res_filter.txt';
FileCtl::make_datafile($cachefile, $_conf['p2_perm']);
$res_filter_cont = serialize(array('field' => $this->field, 'method' => $this->method, 'match' => $this->match, 'include' => $this->include));
FileCtl::file_write_contents($cachefile, $res_filter_cont);
}
示例9: makeBrdFile
/**
* brdファイルを生成する
*
* @return string brdファイルのパス
*/
public function makeBrdFile($cachefile)
{
global $_conf, $word;
$p2brdfile = $cachefile . ".p2.brd";
FileCtl::make_datafile($p2brdfile);
$data = FileCtl::file_read_lines($cachefile);
$cont = '';
$this->setBrdMatch($cachefile);
// パターンマッチ形式を登録
$this->setBrdList($data);
// カテゴリーと板をセット
if ($this->categories) {
foreach ($this->categories as $cate) {
if ($cate->num > 0) {
$cont .= $cate->name . "\t0\n";
foreach ($cate->menuitas as $mita) {
$cont .= "\t{$mita->host}\t{$mita->bbs}\t{$mita->itaj}\n";
}
}
}
}
if ($cont) {
if (FileCtl::file_write_contents($p2brdfile, $cont) === false) {
p2die("{$p2brdfile} を更新できませんでした");
}
return $p2brdfile;
} else {
if (!$word) {
P2Util::pushInfoHtml("<p>p2 error: {$cachefile} から板メニューを生成することはできませんでした。</p>");
}
return false;
}
}
示例10: _updateSkinSetting
/**
* スキン設定を更新し、ページをリロードする
*
* @return false 成功すれば、そのままページリダイレクトされる
*/
function _updateSkinSetting($newskin)
{
global $_conf;
if ($newskin !== '') {
if (!preg_match('/^\\w+$/', $newskin)) {
P2Util::pushInfoHtml(sprintf("<p>p2 error: 不正なスキン (%s) が指定されました。</p>", hs($newskin)));
return false;
}
$skinFilePath = P2Util::getSkinFilePathBySkinName($newskin);
if (!file_exists($skinFilePath)) {
P2Util::pushInfoHtml(sprintf("<p>p2 error: 不正なスキン (%s) が指定されました。</p>", hs($newskin)));
return false;
}
}
FileCtl::make_datafile($_conf['skin_setting_path'], $_conf['skin_setting_perm']);
if (false === file_put_contents($_conf['skin_setting_path'], $newskin, LOCK_EX)) {
P2Util::pushInfoHtml("<p>p2 error: スキン設定を書き込めませんでした。</p>");
return false;
}
$sid_q = defined('SID') && strlen(SID) ? '&' . SID : '';
header("Location: {$_SERVER['SCRIPT_NAME']}?reload_skin=1" . $sid_q);
exit;
}
示例11: downloadDat2chKako
//.........這裏部分代碼省略.........
// HTTPヘッダレスポンスを取得する
$h = $this->freadHttpHeader($fp);
if ($h === false) {
fclose($fp);
$this->_pushInfoHtmlFreadHttpHeaderError($url);
$this->diedat = true;
return false;
}
// {{{ HTTPコードをチェック
$code = $h['code'];
// Partial Content
if ($code == "200") {
// OK。何もしない
// Not Modified
} elseif ($code == "304") {
fclose($fp);
//$this->isonline = true;
return "304 Not Modified";
// 予期しないHTTPコード。なかったと判斷
} else {
fclose($fp);
$this->downloadDat2chKakoNotFound($uri, $ext);
return false;
}
// }}}
if (isset($h['headers']['Last-Modified'])) {
$lastmodified = $h['headers']['Last-Modified'];
}
if (isset($h['headers']['Content-Length'])) {
if (preg_match("/^([0-9]+)/", $h['headers']['Content-Length'], $matches)) {
$onbytes = $h['headers']['Content-Length'];
}
}
$isGzip = false;
if (isset($h['headers']['Content-Encoding'])) {
if (preg_match("/^(x-)?gzip/", $h['headers']['Content-Encoding'], $matches)) {
$isGzip = true;
}
}
// bodyを読む
$body = '';
while (!feof($fp)) {
$body .= fread($fp, 8192);
}
fclose($fp);
$done_gunzip = false;
if ($isGzip) {
$gztempfile = $this->keydat . '.gz';
FileCtl::mkdirFor($gztempfile);
if (file_put_contents($gztempfile, $body, LOCK_EX) === false) {
die("Error: cannot write file. downloadDat2chKako()");
return false;
}
if (extension_loaded('zlib')) {
$body = FileCtl::getGzFileContents($gztempfile);
} else {
// 既に存在するなら一時バックアップ退避
$keydat_bak = $this->keydat . '.bak';
if (file_exists($this->keydat)) {
if (file_exists($keydat_bak)) {
unlink($keydat_bak);
}
rename($this->keydat, $keydat_bak);
}
$rcode = 1;
// 解凍
system("gzip -d {$gztempfile}", $rcode);
if ($rcode != 0) {
if (file_exists($keydat_bak)) {
if (file_exists($this->keydat)) {
unlink($this->keydat);
}
// 失敗ならバックアップ戻す
rename($keydat_bak, $this->keydat);
}
$this->pushDownloadDatErrorMsgHtml("<p>p2 info - 2ちゃんねる過去ログ倉庫からのスレッド取り込みは、PHPの<a href=\"http://www.php.net/manual/ja/ref.zlib.php\">zlib拡張モジュール</a>がないか、systemでgzipコマンドが使用可能\でなければできません。</p>");
// gztempファイルを捨てる
file_exists($gztempfile) and unlink($gztempfile);
$this->diedat = true;
return false;
} else {
if (file_exists($keydat_bak)) {
unlink($keydat_bak);
}
$done_gunzip = true;
}
}
// tempファイルを捨てる
file_exists($gztempfile) and unlink($gztempfile);
}
if (!$done_gunzip) {
FileCtl::make_datafile($this->keydat, $_conf['dat_perm']);
if (false === file_put_contents($this->keydat, $body, LOCK_EX)) {
die("Error: cannot write file. downloadDat2chKako()");
return false;
}
}
//$this->isonline = true;
return true;
}
示例12: saveIdPw2ch
/**
* 2ch●ログインのIDとPASSと自動ログイン設定を保存する
*/
public static function saveIdPw2ch($login2chID, $login2chPW, $autoLogin2ch = false)
{
global $_conf;
$md5_crypt_key = self::getAngoKey();
$escaped_login2chID = addslashes($login2chID);
$crypted_login2chPW = MD5Crypt::encrypt($login2chPW, $md5_crypt_key, 32);
$boolstr_autoLogin2ch = $autoLogin2ch ? 'true' : 'false';
$idpw2ch_cont = <<<EOP
<?php
\$rec_login2chID = '{$escaped_login2chID}';
\$rec_login2chPW = '{$crypted_login2chPW}';
\$rec_autoLogin2ch = {$boolstr_autoLogin2ch};
EOP;
FileCtl::make_datafile($_conf['idpw2ch_php'], $_conf['pass_perm']);
// ファイルがなければ生成
$fp = @fopen($_conf['idpw2ch_php'], 'wb');
if (!$fp) {
p2die("{$_conf['idpw2ch_php']} を更新できませんでした");
}
flock($fp, LOCK_EX);
fputs($fp, $idpw2ch_cont);
flock($fp, LOCK_UN);
fclose($fp);
return true;
}
示例13: updateFavSetList
/**
* お気に入りセットリストを更新する
*
* @return boolean 更新に成功したらTRUE, 失敗したらFALSE
*/
function updateFavSetList()
{
global $_conf;
if (file_exists($_conf['expack.misc.favset_file'])) {
$setlist_titles = FavSetManager::getFavSetTitles();
} else {
FileCtl::make_datafile($_conf['expack.misc.favset_file']);
}
if (empty($setlist_titles)) {
$setlist_titles = array();
}
$setlist_names = array('m_favlist_set', 'm_favita_set', 'm_rss_set');
foreach ($setlist_names as $setlist_name) {
if (isset($_POST["{$setlist_name}_titles"]) && is_array($_POST["{$setlist_name}_titles"])) {
$setlist_titles[$setlist_name] = array();
for ($i = 0; $i <= $_conf['expack.misc.favset_num']; $i++) {
if (!isset($_POST["{$setlist_name}_titles"][$i])) {
$setlist_titles[$setlist_name][$i] = '';
continue;
}
$newname = trim($_POST["{$setlist_name}_titles"][$i]);
$newname = preg_replace('/\\r\\n\\t/', ' ', $newname);
$newname = htmlspecialchars($newname, ENT_QUOTES);
$setlist_titles[$setlist_name][$i] = $newname;
}
}
}
$newdata = serialize($setlist_titles);
if (FileCtl::file_write_contents($_conf['expack.misc.favset_file'], $newdata) === FALSE) {
P2Util::pushInfoHtml("<p>p2 error: {$_conf['expack.misc.favset_file']} にお気に入りセット設定を書き込めませんでした。");
return FALSE;
}
return TRUE;
}
示例14: mb_convert_encoding
if ($rss instanceof XML_RSS) {
$channelInfo = $rss->getChannelInfo();
if (is_array($channelInfo) && array_key_exists('title', $channelInfo)) {
$site = mb_convert_encoding($channelInfo['title'], 'CP932', 'UTF-8,CP51932,CP932,ASCII');
}
}
}
}
// ログに記録する変數を最低限のサニタイズ
$xml = preg_replace_callback('/\\s/', 'rawurlencode', $xml);
$site = preg_replace('/\\s+/', ' ', $site);
$site = p2h($site);
// }}}
// {{{ 読み込み
// rss_pathファイルがなければ生成
FileCtl::make_datafile($_conf['expack.rss.setting_path']);
// rss_path読み込み;
$lines = FileCtl::file_read_lines($_conf['expack.rss.setting_path'], FILE_IGNORE_NEW_LINES);
// }}}
// {{{ 処理
// 最初に重複要素を消去
if ($lines) {
$i = -1;
unset($neolines);
foreach ($lines as $l) {
$i++;
$lar = explode("\t", $l);
if ($lar[1] == $xml) {
// 重複回避
$before_line_num = $i;
continue;
示例15: preg_replace
include P2_BASE_DIR . '/tgrepc.php';
}
exit;
}
} else {
if ($_conf['ktai']) {
include P2_BASE_DIR . '/tgrepc.php';
}
exit;
}
// }}}
// {{{ リストを更新
if (!empty($_GET['query'])) {
$purge = !empty($_GET['purge']);
$query = preg_replace('/\\s+/', ' ', trim($_GET['query']));
FileCtl::make_datafile($list_file);
$tgrep_list = FileCtl::file_read_lines($list_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if (!is_array($tgrep_list)) {
$tgrep_list = array();
}
if ($purge) {
$tgrep_tmp_list = $tgrep_list;
$tgrep_list = array();
foreach ($tgrep_tmp_list as $tgrep_tmp_query) {
if ($tgrep_tmp_query != $query) {
$tgrep_list[] = $tgrep_tmp_query;
}
}
} else {
array_unshift($tgrep_list, $query);
}