当前位置: 首页>>代码示例>>PHP>>正文


PHP P2Util类代码示例

本文整理汇总了PHP中P2Util的典型用法代码示例。如果您正苦于以下问题:PHP P2Util类的具体用法?PHP P2Util怎么用?PHP P2Util使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了P2Util类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: deleteThisKey

/**
 * 指定したキーのスレッドログ(idx (,dat))を削除する
 *
 * 通常は、この関数を直接呼び出すことはない。deleteLogs() から呼び出される。
 *
 * @see deleteLogs()
 * @return  integer|false  削除できたら1, 削除対象がなければ2を返す。失敗があればfalse。
 */
function deleteThisKey($host, $bbs, $key)
{
    global $_conf;
    $anidx = P2Util::idxDirOfHostBbs($host, $bbs) . $key . '.idx';
    $adat = P2Util::datDirOfHostBbs($host, $bbs) . $key . '.dat';
    // Fileの削除処理
    // idx(個人用設定)
    if (file_exists($anidx)) {
        if (unlink($anidx)) {
            $deleted_flag = true;
        } else {
            $failed_flag = true;
        }
    }
    // datの削除処理
    if (file_exists($adat)) {
        if (unlink($adat)) {
            $deleted_flag = true;
        } else {
            $failed_flag = true;
        }
    }
    // 失敗があれば
    if (!empty($failed_flag)) {
        return false;
        // 削除できたら
    } elseif (!empty($deleted_flag)) {
        return 1;
        // 削除対象がなければ
    } else {
        return 2;
    }
}
开发者ID:poppen,项目名称:p2,代码行数:41,代码来源:dele.funcs.php

示例2: deleMsg

/**
 * チェックした書き込み記事を削除する
 *
 * @access  public
 * @return  boolean
 */
function deleMsg($checked_hists)
{
    global $_conf;
    if (!($reslines = file($_conf['p2_res_hist_dat']))) {
        p2die(sprintf('%s を開けませんでした', $_conf['p2_res_hist_dat']));
        return false;
    }
    $reslines = array_map('rtrim', $reslines);
    // ファイルの下に記録されているものが新しいので逆順にする
    $reslines = array_reverse($reslines);
    $neolines = array();
    // チェックして整えて
    if ($reslines) {
        $rmnums = _getRmNums($checked_hists, $reslines);
        $neolines = _rmLine($rmnums, $reslines);
        P2Util::pushInfoHtml("<p>p2 info: " . count($rmnums) . "件のレス記事を削除しました</p>");
    }
    if (is_array($neolines)) {
        // 行順を戻す
        $neolines = array_reverse($neolines);
        $cont = "";
        if ($neolines) {
            $cont = implode("\n", $neolines) . "\n";
        }
        // 書き込み処理
        if (false === FileCtl::filePutRename($_conf['p2_res_hist_dat'], $cont)) {
            $errmsg = sprintf('p2 error: %s(), FileCtl::filePutRename() failed.', __FUNCTION__);
            trigger_error($errmsg, E_USER_WARNING);
            return false;
        }
    }
    return true;
}
开发者ID:poppen,项目名称:p2,代码行数:39,代码来源:read_res_hist.funcs.php

示例3: wordForMatch

 /**
  * フォームから送られてきたワードをマッチ関数に適合させる
  *
  * @static
  * @access  public
  * @return  string  $word_fm  適合パターン。SJISで返す。
  */
 function wordForMatch($word, $method = 'regex')
 {
     $word_fm = $word;
     // 「そのまま」でなければ、全角空白を半角空白に矯正
     if ($method != 'just') {
         $word_fm = mb_convert_kana($word_fm, 's');
     }
     $word_fm = trim($word_fm);
     $word_fm = htmlspecialchars($word_fm, ENT_NOQUOTES);
     if (in_array($method, array('and', 'or', 'just'))) {
         // preg_quote()で2バイト目が0x5B("[")の"ー"なども変換されてしまうので
         // UTF-8にしてから正規表現の特殊文字をエスケープ
         $word_fm = mb_convert_encoding($word_fm, 'UTF-8', 'SJIS-win');
         if (P2_MBREGEX_AVAILABLE == 1) {
             $word_fm = preg_quote($word_fm);
         } else {
             $word_fm = preg_quote($word_fm, '/');
         }
         $word_fm = mb_convert_encoding($word_fm, 'SJIS-win', 'UTF-8');
         // 他、regex(正規表現)なら
     } else {
         $word_fm = str_replace('/', '\\/', $word_fm);
         $tmp_pattern = '/' . mb_convert_encoding($word_fm, 'UTF-8', 'SJIS-win') . '/u';
         if (false === @preg_match($tmp_pattern, '.')) {
             P2Util::pushInfoHtml(sprintf('p2 warning: フィルタ語句の正規表\現に誤りがあります "%s"', hs($word_fm)));
             $word_fm = '';
         }
         if (P2_MBREGEX_AVAILABLE == 0) {
             $word_fm = str_replace('/', '\\/', $word_fm);
         }
         // 末尾のワイルドカードは除去してしまう
         $word_fm = rtrim($word_fm, '.+*');
     }
     return $word_fm;
 }
开发者ID:poppen,项目名称:p2,代码行数:42,代码来源:StrCtl.php

示例4: cacheDownload

 /**
  * Wiki:Last-Modifiedをチェックしてキャッシュする
  * time:チェックしない期間(unixtime)
  */
 function cacheDownload($url, $path, $time = 0)
 {
     global $_conf;
     $filetime = @filemtime($path);
     // キャッシュ有効期間ならチェックしない
     if ($filetime > 0 && $filetime > time() - $time) {
         return;
     }
     if (!class_exists('HTTP_Request', false)) {
         require 'HTTP/Request.php';
     }
     $req =& new HTTP_Request($url, array('timeout' => $_conf['fsockopen_time_limit']));
     $req->setMethod('HEAD');
     $now = time();
     $req->sendRequest();
     $unixtime = strtotime($req->getResponseHeader('Last-Modified'));
     // 新しければ取得
     if ($unixtime > $filetime) {
         P2Util::fileDownload($url, $path);
         // 最終更新日時を設定
         // touch($path, $unixtime);
     } else {
         // touch($path, $now);
     }
     touch($path, $now);
 }
开发者ID:unpush,项目名称:p2-php,代码行数:30,代码来源:p2utilwiki.class.php

示例5: downloadDatCha2

/**
 * チャットちゃんねる cha2.net の dat を読んで保存する関数
 * (差分取得には未対応)
 * ※2ch互換として読み込んでいるので現在この関数は利用はしていない。@see TreadRead->downloadDat()
 *
 * @access  public
 * @return  boolean
 */
function downloadDatCha2(&$ThreadRead)
{
    // {{{ 既得datの取得レス数が適性かどうかを念のためチェック
    if (file_exists($ThreadRead->keydat)) {
        $dls = file($ThreadRead->keydat);
        if (sizeof($dls) != $ThreadRead->gotnum) {
            // echo 'bad size!<br>';
            unlink($ThreadRead->keydat);
            $ThreadRead->gotnum = 0;
        }
    } else {
        $ThreadRead->gotnum = 0;
    }
    // }}}
    if ($ThreadRead->gotnum == 0) {
        $file_append = false;
        $START = 1;
    } else {
        $file_append = true;
        $START = $ThreadRead->gotnum + 1;
    }
    // チャットちゃんねる
    $cha2url = "http://{$ThreadRead->host}/cgi-bin/{$ThreadRead->bbs}/dat/{$ThreadRead->key}.dat";
    $datfile = $ThreadRead->keydat;
    FileCtl::mkdirFor($datfile);
    $cha2url_res = P2Util::fileDownload($cha2url, $datfile);
    if (!$cha2url_res or !$cha2url_res->is_success()) {
        $ThreadRead->diedat = true;
        return false;
    }
    $ThreadRead->isonline = true;
    return true;
}
开发者ID:poppen,项目名称:p2,代码行数:41,代码来源:downloadDatCha2.func.php

示例6: fixed_name_convert_trip

/**
 * コテハンの'#'より後をトリップに変換する
 *
 * @param   string  $name   生のコテハン
 * @return  string  トリップ変換済みのコテハン
 */
function fixed_name_convert_trip($name)
{
    $pos = strpos($name, '#');
    if ($pos === false) {
        return $name;
    }
    return substr($name, 0, $pos) . '◆' . P2Util::mkTrip(substr($name, $pos + 1));
}
开发者ID:xingskycn,项目名称:p2-php,代码行数:14,代码来源:fixed_name.inc.php

示例7: isEnable

 /**
  * IDストーカーに対応しているか調べる
  * $boardがなければloadも実行される
  */
 function isEnable()
 {
     if ($this->host) {
         if (!P2Util::isHost2chs($this->host)) {
             return false;
         }
     }
     return preg_match('/plus$/', $this->bbs);
 }
开发者ID:unpush,项目名称:p2-php,代码行数:13,代码来源:stalker.class.php

示例8: settaborn_off

/**
 * ■スレッドあぼーんを複数一括解除する
 */
function settaborn_off($host, $bbs, $taborn_off_keys)
{
    if (!$taborn_off_keys) {
        return;
    }
    // p2_threads_aborn.idx のパス取得
    $taborn_idx = P2Util::idxDirOfHostBbs($host, $bbs) . 'p2_threads_aborn.idx';
    // p2_threads_aborn.idx がなければ
    if (!file_exists($taborn_idx)) {
        p2die('あぼーんリストが見つかりませんでした。');
    }
    // p2_threads_aborn.idx 読み込み
    $taborn_lines = FileCtl::file_read_lines($taborn_idx, FILE_IGNORE_NEW_LINES);
    // 指定keyを削除
    foreach ($taborn_off_keys as $val) {
        $neolines = array();
        if ($taborn_lines) {
            foreach ($taborn_lines as $line) {
                $lar = explode('<>', $line);
                if ($lar[1] == $val) {
                    // key発見
                    // echo "key:{$val} のスレッドをあぼーん解除しました。<br>";
                    $kaijo_attayo = true;
                    continue;
                }
                if (!$lar[1]) {
                    continue;
                }
                // keyのないものは不正データ
                $neolines[] = $line;
            }
        }
        $taborn_lines = $neolines;
    }
    // 書き込む
    if (file_exists($taborn_idx)) {
        copy($taborn_idx, $taborn_idx . '.bak');
        // 念のためバックアップ
    }
    $cont = '';
    if (is_array($taborn_lines)) {
        foreach ($taborn_lines as $l) {
            $cont .= $l . "\n";
        }
    }
    if (FileCtl::file_write_contents($taborn_idx, $cont) === false) {
        p2die('cannot write file.');
    }
    /*
    if (!$kaijo_attayo) {
        // echo "指定されたスレッドは既にあぼーんリストに載っていないようです。";
    } else {
        // echo "あぼーん解除、完了しました。";
    }
    */
}
开发者ID:xingskycn,项目名称:p2-php,代码行数:59,代码来源:settaborn_off.inc.php

示例9: cacheDownload

 /**
  * Wiki:Last-Modifiedをチェックしてキャッシュする
  * time:チェックしない期間(unixtime)
  */
 public static function cacheDownload($url, $path, $time = 0)
 {
     $filetime = @filemtime($path);
     // キャッシュ有効期間ならダウンロードしない
     if ($filetime !== false && $filetime > time() - $time) {
         return;
     }
     // 新しければ取得
     P2Util::fileDownload($url, $path);
 }
开发者ID:xingskycn,项目名称:p2-php,代码行数:14,代码来源:P2UtilWiki.php

示例10: setBbsNonameName

 /**
  * @access  protected
  * @return  void
  */
 function setBbsNonameName()
 {
     if (P2Util::isHost2chs($this->thread->host)) {
         require_once P2_LIB_DIR . '/SettingTxt.php';
         $SettingTxt = new SettingTxt($this->thread->host, $this->thread->bbs);
         if (array_key_exists('BBS_NONAME_NAME', $SettingTxt->setting_array)) {
             $this->BBS_NONAME_NAME = $SettingTxt->setting_array['BBS_NONAME_NAME'];
         }
     }
 }
开发者ID:poppen,项目名称:p2,代码行数:14,代码来源:ShowThread.php

示例11: 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;
}
开发者ID:poppen,项目名称:p2,代码行数:63,代码来源:setPalace.func.php

示例12: fetchSubjectTxt

 /**
  * subject.txtの並列ダウンロードを実行する
  *
  * @param string $mode
  * @param array $_conf
  * @return bool
  */
 public static function fetchSubjectTxt($mode, array $_conf)
 {
     // コマンド生成
     $args = array(escapeshellarg($_conf['expack.php_cli_path']));
     if ($_conf['expack.dl_pecl_http']) {
         $args[] = '-d';
         $args[] = 'extension=' . escapeshellarg('http.' . PHP_SHLIB_SUFFIX);
     }
     $args[] = escapeshellarg(P2_CLI_DIR . DIRECTORY_SEPARATOR . 'fetch-subject-txt.php');
     switch ($mode) {
         case 'fav':
         case 'recent':
         case 'res_hist':
         case 'merge_favita':
             $args[] = sprintf('--mode=%s', $mode);
             break;
         default:
             return false;
     }
     if ($_conf['expack.misc.multi_favs']) {
         switch ($mode) {
             case 'fav':
                 $args[] = sprintf('--set=%d', $_conf['m_favlist_set']);
                 break;
             case 'merge_favita':
                 $args[] = sprintf('--set=%d', $_conf['m_favita_set']);
                 break;
         }
     }
     // 標準エラー出力を標準出力にリダイレクト
     $args[] = '2>&1';
     $command = implode(' ', $args);
     //P2Util::pushInfoHtml('<p>' . htmlspecialchars($command, ENT_QUOTES) . '</p>');
     // 実行
     $pipe = popen($command, 'r');
     if (!is_resource($pipe)) {
         p2die('コマンドを実行できませんでした。', $command);
     }
     $output = '';
     while (!feof($pipe)) {
         $output .= fgets($pipe);
     }
     $status = pclose($pipe);
     if ($status != 0) {
         P2Util::pushInfoHtml(sprintf('<p>%s(): ERROR(%d)</p>', __METHOD__, $status));
     }
     if ($output !== '') {
         if ($status == 2) {
             P2Util::pushInfoHtml($output);
         } else {
             P2Util::pushInfoHtml('<p>' . nl2br(htmlspecialchars($output, ENT_QUOTES)) . '</p>');
         }
     }
     return $status == 0;
 }
开发者ID:unpush,项目名称:p2-php,代码行数:62,代码来源:P2CommandRunner.php

示例13: isEnable

 /**
  * 必死チェッカーに対応しているか調べる
  * $boardがなければloadも実行される
  */
 function isEnable()
 {
     if ($this->host) {
         if (!P2Util::isHost2chs($this->host)) {
             return false;
         }
     }
     if (!isset($this->boards)) {
         $this->load();
     }
     $this->enabled = in_array($this->bbs, $this->boards) ? true : false;
     return $this->enabled;
 }
开发者ID:unpush,项目名称:p2-php,代码行数:17,代码来源:hissi.class.php

示例14: _getSkinFilePath

/**
 * @return  string
 */
function _getSkinFilePath($skin = null)
{
    global $_conf;
    $skinFilePath = '';
    if ($skin) {
        $skinFilePath = P2Util::getSkinFilePathBySkinName($skin);
    } elseif ($skin_setting_path = _getSkinSettingPath()) {
        $skinFilePath = P2Util::getSkinFilePathBySkinName($skin_setting_path);
    }
    if (!$skinFilePath || !is_file($skinFilePath)) {
        $skinFilePath = $_conf['conf_user_style_inc_php'];
    }
    return $skinFilePath;
}
开发者ID:poppen,项目名称:p2,代码行数:17,代码来源:css.php

示例15: _read_filter_setup

function _read_filter_setup()
{
    $host = $_GET['host'];
    $bbs = $_GET['bbs'];
    $key = $_GET['key'];
    $resnum = (int) $_GET['resnum'];
    $field = $_GET['field'];
    $aThread = new ThreadRead();
    $aThread->setThreadPathInfo($host, $bbs, $key);
    $aThread->readDat($aThread->keydat);
    $i = $resnum - 1;
    if (!($i >= 0 && $i < count($aThread->datlines) && isset($_GET['rf']) && is_array($_GET['rf']))) {
        P2Util::pushInfoHtml('<p>フィルタリングの指定が変です。</p>');
        unset($_GET['rf'], $_REQUEST['rf']);
        return;
    }
    $ares = $aThread->datlines[$i];
    $resar = $aThread->explodeDatLine($ares);
    $name = $resar[0];
    $mail = $resar[1];
    $date_id = $resar[2];
    $msg = $resar[3];
    $params = $_GET['rf'];
    $include = ResFilter::INCLUDE_NONE;
    $fields = explode(':', $field);
    $field = array_shift($fields);
    if (in_array('refs', $fields)) {
        $include |= ResFilter::INCLUDE_REFERENCES;
    }
    if (in_array('refed', $fields)) {
        $include |= ResFilter::INCLUDE_REFERENCED;
    }
    $params['field'] = $field;
    $params['include'] = $include;
    $resFilter = ResFilter::configure($params);
    $target = $resFilter->getTarget($ares, $resnum, $name, $mail, $date_id, $msg);
    if ($field == 'date') {
        $date_part = explode(' ', trim($target));
        $word = $date_part[0];
    } else {
        $word = $target;
    }
    $params['word'] = $word;
    $_REQUEST['rf'] = $params;
}
开发者ID:xingskycn,项目名称:p2-php,代码行数:45,代码来源:read_filter.php


注:本文中的P2Util类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。