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


PHP P2Util::throughIme方法代码示例

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


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

示例1: replaceLinkToHTML

 public function replaceLinkToHTML($url, $str)
 {
     $this->setup();
     $src = false;
     foreach ($this->data as $v) {
         if (preg_match('{' . $v['match'] . '}', $url)) {
             $src = @preg_replace('{' . $v['match'] . '}', $v['replace'], $url);
             if (strstr($v['replace'], '$ime_url')) {
                 $src = str_replace('$ime_url', P2Util::throughIme($url), $src);
             }
             if (strstr($v['replace'], '$str')) {
                 $src = str_replace('$str', $str, $src);
             }
             break;
         }
     }
     return $src;
 }
开发者ID:xingskycn,项目名称:p2-php,代码行数:18,代码来源:LinkPluginCtl.php

示例2: p2die

    p2die('スレッドの指定が変です。');
}
// スレッド情報
$aThread->readDat($aThread->keydat);
$first = $aThread->explodeDatLine($aThread->datlines[0]);
$ttitle = trim($first[4]);
$ttitle_en = base64_encode($ttitle);
$moto_url = $aThread->getMotoThread(true);
$moto_url_k = $aThread->getMotoThread();
if ($moto_url != $moto_url_k) {
    $moto_url_k_ht = sprintf('<input type="text" name="dummy_moto_url_k" value="%s"><br>', hs($moto_url_k));
}
// 投稿フォーム <a>
$post_link_atag = _getPostLinkATag($aThread, $ttitle_en);
// 元スレへ <a>
$moto_link_atag = P2View::tagA(P2Util::throughIme($moto_url_k), '元スレ');
// 指定番号のレスをパース
$p = $resid - 1;
if (isset($aThread->datlines[$p])) {
    $resar = $aThread->explodeDatLine($aThread->datlines[$p]);
    // $resar[2]: 2006/10/20(金) 11:46:08 ID:YS696rnVP BE:32616498-DIA(30003)"
    $name_txt = trim(strip_tags($resar[0]));
    $mail_txt = trim(strip_tags($resar[1]));
    if (strstr($resar[2], 'ID:')) {
        //$id_preg = 'ID: ?([0-9A-Za-z\/.+?]+)([.,]|†)?';
        $id_preg = 'ID: ?([0-9A-Za-z\\/.+?]+)(,|†)?';
        $date_txt = preg_replace('/ ?' . $id_preg . '.*$/', '', $resar[2]);
        $id_txt = preg_replace('/^.*' . $id_preg . '.*$/', 'ID:$1', $resar[2]);
        $id_ht = sprintf('<input type="text" name="dummy_id" value="%s"><br>', hs($id_txt));
    } elseif (strstr($resar[2], 'HOST:')) {
        $id_preg = 'HOST: ?([0-9A-Za-z.,_\\-<>]+)';
开发者ID:poppen,项目名称:p2,代码行数:31,代码来源:read_copy_k.php

示例3: plugin_viewImage

 function plugin_viewImage($url, $purl, $html)
 {
     global $_conf;
     // 表示制限
     if (!isset($GLOBALS['pre_thumb_limit']) && isset($_conf['pre_thumb_limit'])) {
         $GLOBALS['pre_thumb_limit'] = $_conf['pre_thumb_limit'];
     }
     if (!$_conf['preview_thumbnail'] || empty($GLOBALS['pre_thumb_limit'])) {
         return false;
     }
     if (preg_match('{^https?://.+?\\.(jpe?g|gif|png)$}i', $url) && empty($purl['query'])) {
         //$picto_url = 'http://pic.to/' . $purl['host'] . $purl['path'];
         $picto_url = 'http://' . $purl['host'] . $purl['path'];
         //書き換えどころ 080728
         $picto_tag = '<a href="' . hs($picto_url) . '" target="_blank"><img src="' . hs($url) . '"></a> ';
         if ($_conf['through_ime']) {
             $link_url = P2Util::throughIme($url);
             $picto_url = P2Util::throughIme($picto_url);
         } else {
             $link_url = $url;
         }
         // $html は URLを表現しているが、hが欠けていたりする
         return sprintf('%s<a href="%s">%s</a>', $picto_tag, hs($link_url), $html);
     }
     return false;
 }
开发者ID:poppen,项目名称:p2,代码行数:26,代码来源:ShowThreadK.php

示例4: downloadSettingTxt

 /**
  * SETTING.TXT をダウンロードして、パースして、キャッシュする
  *
  * @access  public
  * @return  true|null|false  成功|更新なし(キャッシュ)|失敗
  */
 function downloadSettingTxt()
 {
     global $_conf;
     $perm = $_conf['dl_perm'] ? $_conf['dl_perm'] : 0606;
     FileCtl::mkdirFor($this->setting_txt);
     // 板ディレクトリが無ければ作る
     $modified = null;
     if (file_exists($this->setting_srd) && file_exists($this->setting_txt)) {
         // 更新しない場合は、その場で抜けてしまう
         if (!empty($_GET['norefresh']) || isset($_REQUEST['word'])) {
             return null;
             // キャッシュが新しい場合も抜ける
         } elseif ($this->isSettingSrdCacheFresh()) {
             return null;
         }
         $modified = gmdate('D, d M Y H:i:s', filemtime($this->setting_txt)) . ' GMT';
     }
     // DL
     /*
     // PHP5
     if (!class_exists('HTTP_Request', false)) {
         require 'HTTP/Request.php';
     }
     */
     require_once 'HTTP/Request.php';
     $params = array();
     $params['timeout'] = $_conf['fsockopen_time_limit'];
     if ($_conf['proxy_use']) {
         $params['proxy_host'] = $_conf['proxy_host'];
         $params['proxy_port'] = $_conf['proxy_port'];
     }
     $req = new HTTP_Request($this->url, $params);
     $modified && $req->addHeader('If-Modified-Since', $modified);
     $req->addHeader('User-Agent', 'Monazilla/1.00 (' . $_conf['p2uaname'] . '/' . $_conf['p2version'] . ')');
     $response = $req->sendRequest();
     $error_msg = null;
     if (PEAR::isError($response)) {
         $error_msg = $response->getMessage();
     } else {
         $code = $req->getResponseCode();
         if ($code == 302) {
             // ホストの移転を追跡
             require_once P2_LIB_DIR . '/BbsMap.php';
             $new_host = BbsMap::getCurrentHost($this->host, $this->bbs);
             if ($new_host != $this->host) {
                 $aNewSettingTxt = new SettingTxt($new_host, $this->bbs);
                 return $aNewSettingTxt->downloadSettingTxt();
             }
         }
         if (!($code == 200 || $code == 206 || $code == 304)) {
             //var_dump($req->getResponseHeader());
             $error_msg = $code;
         }
     }
     // DLエラー
     if (strlen($error_msg)) {
         P2Util::pushInfoHtml(sprintf('<div>Error: %s<br>p2 info - %s に接続できませんでした。</div>', hs($error_msg), P2View::tagA(P2Util::throughIme($this->url), hs($this->url), array('target' => $_conf['ext_win_target']))));
         touch($this->setting_txt);
         // DL失敗した場合(404)も touch する
         touch($this->setting_srd);
         return false;
     }
     $body = $req->getResponseBody();
     // DL成功して かつ 更新されていたら保存
     if ($body && $code != 304) {
         // したらば or be.2ch.net ならEUCをSJISに変換
         if (P2Util::isHostJbbsShitaraba($this->host) || P2Util::isHostBe2chNet($this->host)) {
             $body = mb_convert_encoding($body, 'SJIS-win', 'eucJP-win');
         }
         if (false === FileCtl::filePutRename($this->setting_txt, $body)) {
             die('Error: cannot write file');
         }
         chmod($this->setting_txt, $perm);
         // パースして
         if (!$this->setSettingArrayFromSettingTxt()) {
             return false;
         }
         // srd保存する
         if (!$this->saveSettingSrd($this->setting_array)) {
             return false;
         }
     } else {
         // touchすることで更新インターバルが効くので、しばらく再チェックされなくなる
         touch($this->setting_txt);
         // 同時にキャッシュもtouchしないと、setting_txtとsetting_srdで更新時間がずれて、
         // 毎回ここまで処理が来る(サーバへのヘッダリクエストが飛ぶ)場合がある。
         touch($this->setting_srd);
     }
     return true;
 }
开发者ID:poppen,项目名称:p2,代码行数:96,代码来源:SettingTxt.php

示例5:

/**
 * rep2 - タイトルページ
 */
require_once __DIR__ . '/../init.php';
$_login->authorize();
// ユーザ認証
//=========================================================
// 変数
//=========================================================
if (!empty($GLOBALS['pref_dir_realpath_failed_msg'])) {
    P2Util::pushInfoHtml('<p>' . $GLOBALS['pref_dir_realpath_failed_msg'] . '</p>');
}
$p2web_url_r = P2Util::throughIme($_conf['p2web_url']);
$expack_url_r = P2Util::throughIme($_conf['expack.web_url']);
$expack_dl_url_r = P2Util::throughIme($_conf['expack.download_url']);
$expack_hist_url_r = P2Util::throughIme($_conf['expack.history_url']);
// {{{ データ保存ディレクトリのパーミッションの注意を喚起する
P2Util::checkDirWritable($_conf['dat_dir']);
$checked_dirs[] = $_conf['dat_dir'];
// チェック済みのディレクトリを格納する配列に
// まだチェックしていなければ
if (!in_array($_conf['idx_dir'], $checked_dirs)) {
    P2Util::checkDirWritable($_conf['idx_dir']);
    $checked_dirs[] = $_conf['idx_dir'];
}
if (!in_array($_conf['pref_dir'], $checked_dirs)) {
    P2Util::checkDirWritable($_conf['pref_dir']);
    $checked_dirs[] = $_conf['pref_dir'];
}
// }}}
//=========================================================
开发者ID:xingskycn,项目名称:p2-php,代码行数:31,代码来源:title.php

示例6: plugin_imageCache2


//.........这里部分代码省略.........
         // r=0:リンク;r=1:リダイレクト;r=2:PHPで表示
         // t=0:オリジナル;t=1:PC用サムネイル;t=2:携帯用サムネイル;t=3:中間イメージ
         $img_url = 'ic2.php?r=1&amp;uri=' . $url_en;
         $thumb_url = 'ic2.php?r=1&amp;t=1&amp;uri=' . $url_en;
         // DBに画像情報が登録されていたとき
         if ($icdb->get($url)) {
             $img_id = $icdb->id;
             // ウィルスに感染していたファイルのとき
             if ($icdb->mime == 'clamscan/infected') {
                 return "<img class=\"thumbnail\" src=\"./img/x04.png\" width=\"32\" height=\"32\" hspace=\"4\" vspace=\"4\" align=\"middle\"> <s>{$str}</s>";
             }
             // あぼーん画像のとき
             if ($icdb->rank < 0) {
                 return "<img class=\"thumbnail\" src=\"./img/x01.png\" width=\"32\" height=\"32\" hspace=\"4\" vspace=\"4\" align=\"middle\"> <s>{$str}</s>";
             }
             // オリジナルがキャッシュされているときは画像を直接読み込む
             $_img_url = $this->thumbnailer->srcPath($icdb->size, $icdb->md5, $icdb->mime);
             if (file_exists($_img_url)) {
                 $img_url = $_img_url;
                 $cached = true;
             } else {
                 $cached = false;
             }
             // サムネイルが作成されていているときは画像を直接読み込む
             $_thumb_url = $this->thumbnailer->thumbPath($icdb->size, $icdb->md5, $icdb->mime);
             if (file_exists($_thumb_url)) {
                 $thumb_url = $_thumb_url;
                 // 自動スレタイメモ機能がONでスレタイが記録されていないときはDBを更新
                 if (!is_null($this->img_memo) && strpos($icdb->memo, $this->img_memo) === false) {
                     $update = new IC2_DataObject_Images();
                     if (!is_null($icdb->memo) && strlen($icdb->memo) > 0) {
                         $update->memo = $this->img_memo . ' ' . $icdb->memo;
                     } else {
                         $update->memo = $this->img_memo;
                     }
                     $update->whereAddQuoted('uri', '=', $url);
                     $update->update();
                 }
             }
             // サムネイルの画像サイズ
             $thumb_size = $this->thumbnailer->calc($icdb->width, $icdb->height);
             $thumb_size = preg_replace('/(\\d+)x(\\d+)/', 'width="$1" height="$2"', $thumb_size);
             $tmp_thumb = './img/ic_load1.png';
             $orig_img_url = $img_url;
             $orig_thumb_url = $thumb_url;
             // 画像がキャッシュされていないとき
             // 自動スレタイメモ機能がONならクエリにUTF-8エンコードしたスレタイを含める
         } else {
             // 画像がブラックリストorエラーログにあるか確認
             if (false !== ($errcode = $icdb->ic2_isError($url))) {
                 return "<img class=\"thumbnail\" src=\"./img/{$errcode}.png\" width=\"32\" height=\"32\" hspace=\"4\" vspace=\"4\" align=\"middle\"> <s>{$str}</s>";
             }
             $cached = false;
             $orig_img_url = $img_url;
             $orig_thumb_url = $thumb_url;
             $img_url .= $this->img_memo_query;
             $thumb_url .= $this->img_memo_query;
             $thumb_size = '';
             $tmp_thumb = './img/ic_load2.png';
         }
         // キャッシュされておらず、表示数制限が有効のとき
         if (!$cached && !$pre_thumb_unlimited && !$pre_thumb_ignore_limit) {
             // 表示制限を超えていたら、表示しない
             // 表示制限を超えていなければ、表示制限カウンタを下げる
             if ($pre_thumb_limit <= 0) {
                 $show_thumb = false;
             } else {
                 $show_thumb = true;
                 $pre_thumb_limit--;
             }
         } else {
             $show_thumb = true;
         }
         // 表示モード
         if ($show_thumb) {
             $img_tag = "<img class=\"thumbnail\" src=\"{$thumb_url}\" {$thumb_size} hspace=\"4\" vspace=\"4\" align=\"middle\">";
             if ($_conf['iframe_popup']) {
                 $view_img = $this->imageHtmlPopup($img_url, $img_tag, $str);
             } else {
                 $view_img = "<a href=\"{$img_url}\"{$_conf['ext_win_target_at']}>{$img_tag}{$str}</a>";
             }
         } else {
             $img_tag = "<img id=\"{$thumb_id}\" class=\"thumbnail\" src=\"{$tmp_thumb}\" width=\"32\" height=\"32\" hspace=\"4\" vspace=\"4\" align=\"middle\">";
             $view_img = "<a href=\"{$img_url}\" onclick=\"return loadThumb('{$thumb_url}','{$thumb_id}')\"{$_conf['ext_win_target_at']}>{$img_tag}</a><a href=\"{$img_url}\"{$_conf['ext_win_target_at']}>{$str}</a>";
         }
         // ソースへのリンクをime付きで表示
         if ($_conf['expack.ic2.enabled'] && $_conf['expack.ic2.through_ime']) {
             $ime_url = P2Util::throughIme($url);
             if ($_conf['iframe_popup'] == 3) {
                 $ime_mark = '<img src="img/ime.png" width="22" height="12" alt="">';
             } else {
                 $ime_mark = '[ime]';
             }
             $view_img .= " <a class=\"img_through_ime\" href=\"{$ime_url}\"{$_conf['ext_win_target_at']}>{$ime_mark}</a>";
         }
         $view_img .= '<img class="ic2-info-opener" src="img/s2a.png" width="16" height="16" onclick="ic2info.show(' . ($img_id ? $img_id : "'{$url_ht}'") . ', event)">';
         return $view_img;
     }
     return false;
 }
开发者ID:nyarla,项目名称:fluxflex-rep2ex,代码行数:101,代码来源:ShowThreadPc.php

示例7: rss_print_content

function rss_print_content($item, $num, $count)
{
    $item = array_map('trim', $item);
    // 変数の初期化
    $date_ht = '';
    $subject_ht = '';
    $creator_ht = '';
    $description_ht = '';
    $prev_item_ht = '';
    $next_item_ht = '';
    // リンク
    $item_title = p2h($item['title'], false);
    // タイトル
    $link_orig = P2Util::throughIme($item['link']);
    // トピック
    if (isset($item['dc:subject'])) {
        $subject_ht = $item['dc:subject'];
    }
    // 文責
    if (isset($item['dc:creator']) && $item['dc:creator'] !== '') {
        $creator_ht = "<b class=\"name\">" . trim($item['dc:creator']) . "</b>:";
    }
    // 日時
    if (!empty($item['dc:date'])) {
        $date_ht = rss_format_date($item['dc:date']);
    } elseif (!empty($item['dc:pubdate'])) {
        $date_ht = rss_format_date($item['dc:pubdate']);
    }
    // 概要
    if (isset($item['content:encoded']) && $item['content:encoded'] !== '') {
        $description_ht = rss_desc_converter($item['content:encoded']);
    } elseif (isset($item['description']) && $item['description'] !== '') {
        $description_ht = rss_desc_converter($item['description']);
    }
    // 前後の概要へジャンプ
    if ($count != 0) {
        $prev_item_num = $num - 1;
        $next_item_num = $num + 1;
        if ($prev_item_num != 0) {
            $prev_item_ht = "<a href=\"#it{$prev_item_num}\">▲</a>";
        }
        if ($next_item_num <= $count) {
            $next_item_ht = "<a href=\"#it{$next_item_num}\">▼</a>";
        }
    }
    // 表示
    echo <<<EOP
<table id="it{$num}" width="100%">
    <tr>
        <td align="left"><h3 class="thread_title">{$item_title}</h3></td>
        <td align="right" nowrap>{$prev_item_ht} {$next_item_ht}</td>
    </tr>
</table>
<div style="margin:0.5em">{$creator_ht}{$date_ht} <a href="{$link_orig}">[LINK]</a></div>
<div style="margin:1em 1em 1em 2em">
{$description_ht}
</div>
<div style="text-align:right"><a href="#it{$num}">▲</a></div>

EOP;
    if ($count != 0 && $num != $count) {
        echo "\n<hr style=\"margin:20px 0px\">\n\n";
    }
}
开发者ID:xingskycn,项目名称:p2-php,代码行数:64,代码来源:read.inc.php

示例8: list

<?php

// p2 -  タイトルページ(PC用)
require_once './conf/conf.inc.php';
require_once P2_LIB_DIR . '/FileCtl.php';
$_login->authorize();
// ユーザ認証
//=========================================================
// 変数
//=========================================================
$p2web_url_r = P2Util::throughIme($_conf['p2web_url']);
// {{{ データ保存ディレクトリのパーミッションの注意を喚起する
P2Util::checkDirWritable($_conf['dat_dir']);
$checked_dirs[] = $_conf['dat_dir'];
// チェック済みのディレクトリを格納する配列に
// まだチェックしていなければ
if (!in_array($_conf['idx_dir'], $checked_dirs)) {
    P2Util::checkDirWritable($_conf['idx_dir']);
    $checked_dirs[] = $_conf['idx_dir'];
}
if (!in_array($_conf['pref_dir'], $checked_dirs)) {
    P2Util::checkDirWritable($_conf['pref_dir']);
    $checked_dirs[] = $_conf['pref_dir'];
}
// }}}
//=========================================================
// 前処理
//=========================================================
// ●ID 2ch オートログイン
if ($array = P2Util::readIdPw2ch()) {
    list($login2chID, $login2chPW, $autoLogin2ch) = $array;
开发者ID:poppen,项目名称:p2,代码行数:31,代码来源:title.php

示例9: plugin_linkNicoNico

    function plugin_linkNicoNico($url, $purl, $str)
    {
        global $_conf;
        // http://www.nicovideo.jp/watch?v=utbrYUJt9CSl0
        // http://www.nicovideo.jp/watch/utvWwAM30N0No
        /*
        <div style="width:318px; border:solid 1px #CCCCCC;"><iframe src="http://www.nicovideo.jp/thumb?v=utvWwAM30N0No" width="100%" height="198" scrolling="no" border="0" frameborder="0"></iframe></div>
        */
        if (preg_match('{^http://www\\.nicovideo\\.jp/watch(?:/|(?:\\?v=))([0-9a-zA-Z_-]+)}', $url, $m)) {
            $url = P2Util::throughIme($url);
            $id = $m[1];
            $ids = str_replace('sm', '', $id);
            return <<<EOP
<a href="mailto:?subject=rep2iPhone からニコニコ&body=http:%2F%2Fwww.nicovideo.jp%2Fwatch%2F{$id}"><img class="nico" src="http://tn-skr2.smilevideo.jp/smile?i={$ids}"></a>
<a href="{$url}" target="_blank">{$str}</a>
EOP;
        }
        return FALSE;
    }
开发者ID:68,项目名称:rep2iphone,代码行数:19,代码来源:showthreadk.class.php

示例10: fileDownload

 /**
  * ファイルをダウンロード保存する
  *
  * @access  public
  * @param   $options  array('disp_error' => true, 'use_tmp_file' => false, 'modified' = null)
  * @return  WapResponse|false
  */
 function fileDownload($url, $localfile, $options = array())
 {
     global $_conf;
     $me = __CLASS__ . '::' . __FUNCTION__ . '()';
     $disp_error = isset($options['disp_error']) ? $options['disp_error'] : true;
     $use_tmp_file = isset($options['use_tmp_file']) ? $options['use_tmp_file'] : false;
     $modified = isset($options['modified']) ? $options['modified'] : null;
     if (strlen($localfile) == 0) {
         trigger_error("{$me}, localfile is null", E_USER_WARNING);
         return false;
     }
     $perm = isset($_conf['dl_perm']) ? $_conf['dl_perm'] : 0606;
     // {{{ modifiedの指定
     // 指定なし(null)なら、ファイルの更新時間
     if (is_null($modified) && file_exists($localfile)) {
         $modified = gmdate("D, d M Y H:i:s", filemtime($localfile)) . " GMT";
         // UNIX TIME
     } elseif (is_numeric($modified)) {
         $modified = gmdate("D, d M Y H:i:s", $modified) . " GMT";
         // 日付時間文字列
     } elseif (is_string($modified)) {
         // $modified はそのまま
     } else {
         // modified ヘッダはなし
         $modified = false;
     }
     // }}}
     // DL
     require_once P2_LIB_DIR . '/wap.class.php';
     $wap_ua = new WapUserAgent();
     $wap_ua->setTimeout($_conf['fsockopen_time_limit']);
     $wap_req = new WapRequest();
     $wap_req->setUrl($url);
     $modified and $wap_req->setModified($modified);
     if ($_conf['proxy_use']) {
         $wap_req->setProxy($_conf['proxy_host'], $_conf['proxy_port']);
     }
     $wap_res = $wap_ua->request($wap_req);
     if (!$wap_res or !$wap_res->is_success() && $disp_error) {
         $url_t = P2Util::throughIme($wap_req->url);
         $atag = P2View::tagA($url_t, hs($wap_req->url), array('target' => $_conf['ext_win_target']));
         $msgHtml = sprintf('<div>Error: %s %s<br>p2 info - %s に接続できませんでした。</div>', hs($wap_res->code), hs($wap_res->message), $atag);
         P2Util::pushInfoHtml($msgHtml);
     }
     // 更新されていたらファイルに保存
     if ($wap_res->is_success() && $wap_res->code != '304') {
         if ($use_tmp_file) {
             if (!is_dir($_conf['tmp_dir'])) {
                 if (!FileCtl::mkdirR($_conf['tmp_dir'])) {
                     die("Error: {$me}, cannot mkdir.");
                     return false;
                 }
             }
             if (false === FileCtl::filePutRename($localfile, $wap_res->content)) {
                 trigger_error("{$me}, FileCtl::filePutRename() return false. " . $localfile, E_USER_WARNING);
                 die("Error:  {$me}, cannot write file.");
                 return false;
             }
         } else {
             if (false === file_put_contents($localfile, $wap_res->content, LOCK_EX)) {
                 die("Error:  {$me}, cannot write file.");
                 return false;
             }
         }
         chmod($localfile, $perm);
     }
     return $wap_res;
 }
开发者ID:poppen,项目名称:p2,代码行数:75,代码来源:P2Util.php

示例11: downloadSubject

 /**
  * subject.txtをダウンロードする
  *
  * @return string subject.txt の中身
  */
 public function downloadSubject()
 {
     global $_conf;
     if ($this->storage === 'file') {
         FileCtl::mkdirFor($this->subject_file);
         // 板ディレクトリが無ければ作る
         if (file_exists($this->subject_file)) {
             if (!empty($_REQUEST['norefresh']) || empty($_REQUEST['refresh']) && isset($_REQUEST['word'])) {
                 return;
                 // 更新しない場合は、その場で抜けてしまう
             } elseif (!empty($GLOBALS['expack.subject.multi-threaded-download.done'])) {
                 return;
                 // 並列ダウンロード済の場合も抜ける
             } elseif (empty($_POST['newthread']) and $this->isSubjectTxtFresh()) {
                 return;
                 // 新規スレ立て時でなく、更新が新しい場合も抜ける
             }
             $modified = http_date(filemtime($this->subject_file));
         } else {
             $modified = false;
         }
     }
     // DL
     $params = array();
     $params['timeout'] = $_conf['http_conn_timeout'];
     $params['readTimeout'] = array($_conf['http_read_timeout'], 0);
     if ($_conf['proxy_use']) {
         $params['proxy_host'] = $_conf['proxy_host'];
         $params['proxy_port'] = $_conf['proxy_port'];
     }
     $req = new HTTP_Request($this->subject_url, $params);
     $modified && $req->addHeader("If-Modified-Since", $modified);
     $req->addHeader('User-Agent', "Monazilla/1.00 ({$_conf['p2ua']})");
     $response = $req->sendRequest();
     if (PEAR::isError($response)) {
         $error_msg = $response->getMessage();
     } else {
         $code = $req->getResponseCode();
         if ($code == 302) {
             // ホストの移転を追跡
             $new_host = BbsMap::getCurrentHost($this->host, $this->bbs);
             if ($new_host != $this->host) {
                 $aNewSubjectTxt = new SubjectTxt($new_host, $this->bbs);
                 $body = $aNewSubjectTxt->downloadSubject();
                 return $body;
             }
         }
         if (!($code == 200 || $code == 206 || $code == 304)) {
             //var_dump($req->getResponseHeader());
             $error_msg = $code;
         }
     }
     if (isset($error_msg) && strlen($error_msg) > 0) {
         $url_t = P2Util::throughIme($this->subject_url);
         $info_msg_ht = "<p class=\"info-msg\">Error: {$error_msg}<br>";
         $info_msg_ht .= "rep2 info: <a href=\"{$url_t}\"{$_conf['ext_win_target_at']}>{$this->subject_url}</a> に接続できませんでした。</p>";
         P2Util::pushInfoHtml($info_msg_ht);
         $body = '';
     } else {
         $body = $req->getResponseBody();
     }
     // ■ DL成功して かつ 更新されていたら
     if ($body && $code != "304") {
         // したらば or be.2ch.net ならEUCをSJISに変換
         if (P2Util::isHostJbbsShitaraba($this->host) || P2Util::isHostBe2chNet($this->host)) {
             $body = mb_convert_encoding($body, 'CP932', 'CP51932');
         }
         if (FileCtl::file_write_contents($this->subject_file, $body) === false) {
             p2die('cannot write file');
         }
     } else {
         // touchすることで更新インターバルが効くので、しばらく再チェックされなくなる
         // (変更がないのに修正時間を更新するのは、少し気が進まないが、ここでは特に問題ないだろう)
         if ($this->storage === 'file') {
             touch($this->subject_file);
         }
     }
     return $body;
 }
开发者ID:xingskycn,项目名称:p2-php,代码行数:84,代码来源:SubjectTxt.php

示例12: _urlToAnchor

 /**
  * _pushInfo系メソッド用にURLをアンカーに変換する
  *
  * @param   string  $url
  * @return  string
  */
 protected static function _urlToAnchor($url)
 {
     global $_conf;
     return sprintf('<a href="%s"%s>%s</a>', P2Util::throughIme($url), $_conf['ext_win_target_at'], p2h($url));
 }
开发者ID:xingskycn,项目名称:p2-php,代码行数:11,代码来源:ThreadRead.php

示例13: previewOne

 /**
  * >>1のみをプレビュー表示するためのHTMLを取得する(オンザフライに対応)
  *
  * @access  public
  * @return  string|false
  */
 function previewOne()
 {
     global $_conf, $ptitle_ht;
     if (!($this->host && $this->bbs && $this->key)) {
         return false;
     }
     $first_line = '';
     // ローカルdatから取得
     if (is_readable($this->keydat)) {
         $fd = fopen($this->keydat, "rb");
         $first_line = fgets($fd, 32800);
         fclose($fd);
     }
     if ($first_line) {
         // be.2ch.net ならEUC→SJIS変換
         if (P2Util::isHostBe2chNet($this->host)) {
             $first_line = mb_convert_encoding($first_line, 'SJIS-win', 'eucJP-win');
         }
         $first_datline = rtrim($first_line);
         if (strstr($first_datline, "<>")) {
             $datline_sepa = "<>";
         } else {
             $datline_sepa = ",";
             $this->dat_type = "2ch_old";
         }
         $d = explode($datline_sepa, $first_datline);
         $this->setTtitle($d[4]);
         // 便宜上
         if (!$this->readnum) {
             $this->readnum = 1;
         }
     }
     // ローカルdatなければオンラインから
     if (!$first_line) {
         $url = $this->getDatUrl($this->host, $this->bbs, $this->key);
         $purl = parse_url($url);
         $purl['query'] = isset($purl['query']) ? '?' . $purl['query'] : '';
         // プロキシ
         if ($_conf['proxy_use']) {
             $send_host = $_conf['proxy_host'];
             $send_port = $_conf['proxy_port'];
             $send_path = $url;
         } else {
             $send_host = $purl['host'];
             $send_port = isset($purl['port']) ? $purl['port'] : null;
             $send_path = $purl['path'] . $purl['query'];
         }
         // デフォルトを80
         !$send_port and $send_port = 80;
         $request = 'GET ' . $send_path . " HTTP/1.0\r\n";
         $request .= "Host: " . $purl['host'] . "\r\n";
         $request .= 'User-Agent: ' . P2Util::getP2UA($withMonazilla = true) . "\r\n";
         // $request .= "Range: bytes={$from_bytes}-\r\n";
         // Basic認証用のヘッダ
         if (isset($purl['user']) && isset($purl['pass'])) {
             $request .= "Authorization: Basic " . base64_encode($purl['user'] . ":" . $purl['pass']) . "\r\n";
         }
         $request .= "Connection: Close\r\n";
         $request .= "\r\n";
         // WEBサーバへ接続
         $fp = fsockopen($send_host, $send_port, $errno, $errstr, $_conf['fsockopen_time_limit']);
         if (!$fp) {
             P2Util::pushInfoHtml(sprintf('<p>サーバ接続エラー: %s (%s)<br>p2 info - %s に接続できませんでした。</p>', $errstr, $errno, P2View::tagA(P2Util::throughIme($url), hs($url), array('target' => $_conf['ext_win_target']))));
             $this->diedat = true;
             return false;
         }
         // HTTPリクエスト送信
         fputs($fp, $request);
         // 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。何もしない
             // 予期しないHTTPコード。なかったと判断する
         } else {
             fclose($fp);
             $this->previewOneNotFound();
             return false;
         }
         // }}}
         if (isset($h['headers']['Content-Length'])) {
             if (preg_match("/^([0-9]+)/", $h['headers']['Content-Length'], $matches)) {
                 $onbytes = $h['headers']['Content-Length'];
             }
         }
         // bodyを一行目だけ読む
//.........这里部分代码省略.........
开发者ID:poppen,项目名称:p2,代码行数:101,代码来源:ThreadRead.php

示例14:

        <input type="hidden" name="login2ch" value="in">
        <input type="submit" name="submit" value="再{$login_st}する">
    </form>

EOFORM;
    } else {
        $form_now_log = "<p>現在、{$login_st}していません</p>";
    }
}
if ($autoLogin2ch) {
    $autoLogin2ch_checked = ' checked="checked"';
} else {
    $autoLogin2ch_checked = '';
}
$tora3_url = "http://2ch.tora3.net/";
$tora3_url_r = P2Util::throughIme($tora3_url);
if (!$_conf['ktai']) {
    $id_input_size_at = " size=\"30\"";
    $pass_input_size_at = " size=\"24\"";
}
// プリント =================================
echo "<div id=\"login_status\">";
echo $form_now_log;
echo "</div>";
if ($_conf['ktai']) {
    echo "<hr>";
}
echo <<<EOFORM
<form id="login_with_id" method="POST" action="{$_SERVER['SCRIPT_NAME']}" target="_self">
    {$_conf['k_input_ht']}
    ID: <input type="text" name="login2chID" value="{$login2chID}"{$id_input_size_at}><br>
开发者ID:xingskycn,项目名称:p2-php,代码行数:31,代码来源:login2ch.php

示例15: foreach

    <th class="ti">勢い</th>
</tr>
</thead>
<tbody>
<?php 
    $R = true;
    foreach ($threads as $o => $t) {
        $new = '';
        $turl = sprintf('%s?host=%s&amp;bbs=%s&amp;key=%d', $_conf['read_php'], $t->host, $t->bbs, $t->tkey);
        $burl = sprintf('%s?host=%s&amp;bbs=%s&amp;itaj_en=%s&amp;word=%s', $_conf['subject_php'], $t->host, $t->bbs, UrlSafeBase64::encode($t->ita), $htm['query_en']);
        if (P2Util::isHostMachiBbs($t->host)) {
            $ourl = sprintf('http://%s/bbs/read.cgi/%s/%s/', $t->host, $t->bbs, $t->tkey);
        } else {
            $ourl = sprintf('http://%s/test/read.cgi/%s/%s/', $t->host, $t->bbs, $t->tkey);
        }
        $iurl = P2Util::throughIme($ourl);
        $aThread = new Thread();
        $aThread->setThreadPathInfo($t->host, $t->bbs, $t->tkey);
        if ($aThread->getThreadInfoFromIdx() && $aThread->isKitoku()) {
            $rnum = max($t->resnum, $aThread->readnum);
            $nnum = max(0, $rnum - $aThread->readnum);
        } else {
            $rnum = $t->resnum;
            $nnum = '';
        }
        ?>
<tr class="<?php 
        echo $R ? 'r1 r_odd' : 'r2 r_even';
        $R = !$R;
        ?>
">
开发者ID:xingskycn,项目名称:p2-php,代码行数:31,代码来源:view.inc.php


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