本文整理汇总了PHP中P2Util::isUrlWikipediaJa方法的典型用法代码示例。如果您正苦于以下问题:PHP P2Util::isUrlWikipediaJa方法的具体用法?PHP P2Util::isUrlWikipediaJa怎么用?PHP P2Util::isUrlWikipediaJa使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类P2Util
的用法示例。
在下文中一共展示了P2Util::isUrlWikipediaJa方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: transLinkDo
/**
* リンク対象文字列の種類を判定して対応した関数/メソッドに渡す
*
* @param array $s
* @return string
*/
public function transLinkDo(array $s)
{
global $_conf;
$orig = $s[0];
$following = '';
// PHP 5.2.7 未満の preg_replace_callback() では名前付き捕獲式集合が使えないので
/*
if (!array_key_exists('link', $s)) {
$s['link'] = $s[1];
$s['quote'] = $s[5];
$s['url'] = $s[8];
$s['id'] = $s[11];
}
*/
// マッチしたサブパターンに応じて分岐
// リンク
if ($s['link']) {
if (preg_match('{ href=(["\'])?(.+?)(?(1)\\1)(?=[ >])}i', $s[2], $m)) {
$url = $m[2];
$str = $s[3];
} else {
return $s[3];
}
// 引用
} elseif ($s['quote']) {
return preg_replace_callback(self::getAnchorRegex('/(%prefix%)?(%a_range%)/'), array($this, 'quoteResCallback'), $s['quote']);
// http or ftp のURL
} elseif ($s['url']) {
if ($_conf['ktai'] && $s[9] == 'ftp') {
return $orig;
}
$url = preg_replace('/^t?(tps?)$/', 'ht$1', $s[9]) . '://' . $s[10];
$str = $s['url'];
$following = $s[11];
if (strlen($following) > 0) {
// ウィキペディア日本語版のURLで、SJISの2バイト文字の上位バイト
// (0x81-0x9F,0xE0-0xEF)が続くとき
if (P2Util::isUrlWikipediaJa($url)) {
$leading = ord($following);
if (($leading ^ 0x90) < 32 && $leading != 0x80 || ($leading ^ 0xe0) < 16) {
$url .= rawurlencode(mb_convert_encoding($following, 'UTF-8', 'CP932'));
$str .= $following;
$following = '';
}
} elseif (strpos($following, 'tp://') !== false) {
// 全角スペース+URL等の場合があるので再チェック
$following = $this->transLink($following);
}
}
// ID
} elseif ($s['id'] && $_conf['flex_idpopup']) {
// && $_conf['flex_idlink_k']
return $this->idFilter($s['id'], $s[12]);
// その他(予備)
} else {
return strip_tags($orig);
}
// リダイレクタを外す
switch ($this->_redirector) {
case self::REDIRECTOR_IMENU:
$url = preg_replace('{^([a-z]+://)ime\\.nu/}', '$1', $url);
break;
case self::REDIRECTOR_PINKTOWER:
$url = preg_replace('{^([a-z]+://)pinktower\\.com/}', '$1', $url);
break;
case self::REDIRECTOR_MACHIBBS:
$url = preg_replace('{^[a-z]+://machi(?:bbs\\.com|\\.to)/bbs/link\\.cgi\\?URL=}', '', $url);
break;
}
// エスケープされていない特殊文字をエスケープ
$url = htmlspecialchars($url, ENT_QUOTES, 'Shift_JIS', false);
$str = htmlspecialchars($str, ENT_QUOTES, 'Shift_JIS', false);
// 実態参照・数値参照を完全にデコードしようとすると負荷が大きいし、
// "&"以外の特殊文字はほとんどの場合URLエンコードされているはずなので
// 中途半端に凝った処理はせず、"&"→"&"のみ再変換する。
$raw_url = str_replace('&', '&', $url);
// URLをパース・ホストを検証
$purl = @parse_url($raw_url);
if (!$purl || !array_key_exists('host', $purl) || strpos($purl['host'], '.') === false || $purl['host'] == '127.0.0.1' || P2Util::isHostExample($purl['host'])) {
return $orig;
}
// URLのマッチングで"&"を考慮しなくて済むように、生のURLを登録しておく
$purl[0] = $raw_url;
// URLを処理
foreach ($this->_user_url_handlers as $handler) {
if (false !== ($link = call_user_func($handler, $url, $purl, $str, $this))) {
return $link . $following;
}
}
foreach ($this->_url_handlers as $handler) {
if (false !== ($link = $this->{$handler}($url, $purl, $str))) {
return $link . $following;
}
}
//.........这里部分代码省略.........
示例2: plugin_imageCache2
/**
* 画像URLのImageCache2変換
*/
public function plugin_imageCache2($url, $purl, $str)
{
global $_conf;
global $pre_thumb_unlimited, $pre_thumb_ignore_limit, $pre_thumb_limit_k;
if (P2Util::isUrlWikipediaJa($url)) {
return false;
}
if (preg_match('{^https?://.+?\\.(jpe?g|gif|png)$}i', $purl[0]) && empty($purl['query'])) {
// インラインプレビューの有効判定
if ($pre_thumb_unlimited || $pre_thumb_ignore_limit || $pre_thumb_limit_k > 0) {
$inline_preview_flag = true;
$inline_preview_done = false;
} else {
$inline_preview_flag = false;
$inline_preview_done = false;
}
$url_ht = $url;
$url = $purl[0];
$url_en = rawurlencode($url);
$img_str = null;
$img_id = null;
$icdb = new IC2_DataObject_Images();
// r=0:リンク;r=1:リダイレクト;r=2:PHPで表示
// t=0:オリジナル;t=1:PC用サムネイル;t=2:携帯用サムネイル;t=3:中間イメージ
$img_url = 'ic2.php?r=0&t=2&uri=' . $url_en;
$img_url2 = 'ic2.php?r=0&t=2&id=';
$src_url = 'ic2.php?r=1&t=0&uri=' . $url_en;
$src_url2 = 'ic2.php?r=1&t=0&id=';
$src_exists = false;
// DBに画像情報が登録されていたとき
if ($icdb->get($url)) {
$img_id = $icdb->id;
// ウィルスに感染していたファイルのとき
if ($icdb->mime == 'clamscan/infected') {
return '[IC2:ウィルス警告]';
}
// あぼーん画像のとき
if ($icdb->rank < 0) {
return '[IC2:あぼーん画像]';
}
// オリジナルの有無を確認
$_src_url = $this->thumbnailer->srcPath($icdb->size, $icdb->md5, $icdb->mime);
if (file_exists($_src_url)) {
$src_exists = true;
$img_url = $img_url2 . $icdb->id;
$src_url = $_src_url;
} else {
$img_url = $this->thumbnailer->thumbPath($icdb->size, $icdb->md5, $icdb->mime);
$src_url = $src_url2 . $icdb->id;
}
// インラインプレビューが有効のとき
$prv_url = null;
if ($this->thumbnailer->ini['General']['inline'] == 1) {
// PCでread_new_k.phpにアクセスしたとき等
if (!isset($this->inline_prvw) || !is_object($this->inline_prvw)) {
$this->inline_prvw = $this->thumbnailer;
}
$prv_url = $this->inline_prvw->thumbPath($icdb->size, $icdb->md5, $icdb->mime);
// サムネイル表示制限数以内のとき
if ($inline_preview_flag) {
// プレビュー画像が作られているかどうかでimg要素の属性を決定
if (file_exists($prv_url)) {
$prv_size = explode('x', $this->inline_prvw->calc($icdb->width, $icdb->height));
$img_str = "<img src=\"{$prv_url}\" width=\"{$prv_size[0]}\" height=\"{$prv_size[1]}\">";
} else {
$r_type = $this->thumbnailer->ini['General']['redirect'] == 1 ? 1 : 2;
if ($src_exists) {
$prv_url = "ic2.php?r={$r_type}&t=1&id={$icdb->id}";
} else {
$prv_url = "ic2.php?r={$r_type}&t=1&uri={$url_en}";
}
$prv_url .= $this->img_dpr_query;
if ($this->img_dpr === 1.5 || $this->img_dpr === 2.0) {
$prv_onload = " onload=\"this.width=parseInt((this.width/{$this->img_dpr}).toString());" . "this.height=parseInt((this.height/{$this->img_dpr}).toString());\"";
} else {
$prv_onload = '';
}
$img_str = "<img src=\"{$prv_url}\"{$prv_onload}>";
}
$inline_preview_done = true;
} else {
$img_str = '[p2:既得画像(ランク:' . $icdb->rank . ')]';
}
}
// 自動スレタイメモ機能が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();
}
// 画像がキャッシュされていないとき
// 自動スレタイメモ機能がONならクエリにUTF-8エンコードしたスレタイを含める
//.........这里部分代码省略.........
示例3: plugin_imageCache2
/**
* ImageCache2サムネイル変換
*
* @param string $url
* @param array $purl
* @param string $str
* @return string|false
*/
public function plugin_imageCache2($url, $purl, $str, $force = false, $referer = null)
{
static $serial = 0;
global $_conf;
global $pre_thumb_unlimited, $pre_thumb_ignore_limit, $pre_thumb_limit;
if (P2Util::isUrlWikipediaJa($url)) {
return false;
}
if (preg_match('{^https?://.+?\\.(jpe?g|gif|png)$}i', $purl[0]) && empty($purl['query']) || $force) {
// 準備
$serial++;
$thumb_id = 'thumbs' . $serial . $this->thumb_id_suffix;
$tmp_thumb = './img/ic_load.png';
$url_ht = $url;
$url = $purl[0];
$url_en = rawurlencode($url) . ($referer ? '&ref=' . rawurlencode($referer) : '');
$img_id = null;
$icdb = new ImageCache2_DataObject_Images();
// r=0:リンク;r=1:リダイレクト;r=2:PHPで表示
// t=0:オリジナル;t=1:PC用サムネイル;t=2:携帯用サムネイル;t=3:中間イメージ
$img_url = 'ic2.php?r=1&uri=' . $url_en;
$thumb_url = 'ic2.php?r=1&t=1&uri=' . $url_en;
// お気にスレ自動画像ランク
$rank = null;
if ($_conf['expack.ic2.fav_auto_rank']) {
$rank = $this->getAutoFavRank();
if ($rank !== null) {
$thumb_url .= '&rank=' . $rank;
}
}
// 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->srcUrl($icdb->size, $icdb->md5, $icdb->mime);
if (file_exists($_img_url)) {
$img_url = $_img_url;
$cached = true;
} else {
$cached = false;
}
// サムネイルが作成されていているときは画像を直接読み込む
$_thumb_url = $this->thumbnailer->thumbUrl($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 ImageCache2_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);
}
// expack.ic2.fav_auto_rank_override の設定とランク条件がOKなら
// お気にスレ自動画像ランクを上書き更新
if ($rank !== null && self::isAutoFavRankOverride($icdb->rank, $rank)) {
if ($update === null) {
$update = new ImageCache2_DataObject_Images();
$update->whereAddQuoted('uri', '=', $url);
}
$update->rank = $rank;
}
if ($update !== null) {
$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;
//.........这里部分代码省略.........
示例4: plugin_replaceImageUrl
public function plugin_replaceImageUrl($url, $purl, $str)
{
global $_conf;
global $pre_thumb_unlimited, $pre_thumb_ignore_limit, $pre_thumb_limit_k;
if (P2Util::isUrlWikipediaJa($url)) {
return false;
}
// if (preg_match('{^https?://.+?\\.(jpe?g|gif|png)$}i', $url) && empty($purl['query'])) {
// +Wiki
global $replaceImageUrlCtl;
$url = $purl[0];
$replaced = $replaceImageUrlCtl->replaceImageUrl($url);
if (!$replaced[0]) {
return false;
}
foreach ($replaced as $v) {
// インラインプレビューの有効判定
if ($pre_thumb_unlimited || $pre_thumb_ignore_limit || $pre_thumb_limit_k > 0) {
$inline_preview_flag = true;
$inline_preview_done = false;
} else {
$inline_preview_flag = false;
$inline_preview_done = false;
}
// +Wiki
// $url_en = rawurlencode($url);
$url_ht = $url;
$url_en = rawurlencode($v['url']);
$ref_en = $v['referer'] ? '&ref=' . rawurlencode($v['referer']) : '';
$img_str = null;
$img_id = null;
$icdb = new ImageCache2_DataObject_Images();
// r=0:リンク;r=1:リダイレクト;r=2:PHPで表示
// t=0:オリジナル;t=1:PC用サムネイル;t=2:携帯用サムネイル;t=3:中間イメージ
$img_url = 'ic2.php?r=0&t=2&uri=' . $url_en . $ref_en;
$img_url2 = 'ic2.php?r=0&t=2&id=';
$src_url = 'ic2.php?r=1&t=0&uri=' . $url_en . $ref_en;
$src_url2 = 'ic2.php?r=1&t=0&id=';
$src_exists = false;
// お気にスレ自動画像ランク
$rank = null;
if ($_conf['expack.ic2.fav_auto_rank']) {
$rank = $this->getAutoFavRank();
}
// DBに画像情報が登録されていたとき
if ($icdb->get($v['url'])) {
$img_id = $icdb->id;
// ウィルスに感染していたファイルのとき
if ($icdb->mime == 'clamscan/infected') {
return '[IC2:ウィルス警告]';
}
// あぼーん画像のとき
if ($icdb->rank < 0) {
return '[IC2:あぼーん画像]';
}
// オリジナルの有無を確認
$_src_url = $this->thumbnailer->srcUrl($icdb->size, $icdb->md5, $icdb->mime);
if (file_exists($_src_url)) {
$src_exists = true;
$img_url = $img_url2 . $icdb->id;
$src_url = $_src_url;
} else {
$img_url = $this->thumbnailer->thumbUrl($icdb->size, $icdb->md5, $icdb->mime);
$src_url = $src_url2 . $icdb->id;
}
// インラインプレビューが有効のとき
$prv_url = null;
if ($this->thumbnailer->ini['General']['inline'] == 1) {
// PCでread_new_k.phpにアクセスしたとき等
if (!isset($this->inline_prvw) || !is_object($this->inline_prvw)) {
$this->inline_prvw = $this->thumbnailer;
}
$prv_url = $this->inline_prvw->thumbUrl($icdb->size, $icdb->md5, $icdb->mime);
// サムネイル表示制限数以内のとき
if ($inline_preview_flag) {
// プレビュー画像が作られているかどうかでimg要素の属性を決定
if (file_exists($prv_url)) {
$prvw_size = explode('x', $this->inline_prvw->calc($icdb->width, $icdb->height));
$img_str = "<img src=\"{$prv_url}\" width=\"{$prvw_size[0]}\" height=\"{$prvw_size[1]}\">";
} else {
$r_type = $this->thumbnailer->ini['General']['redirect'] == 1 ? 1 : 2;
if ($src_exists) {
$prv_url = "ic2.php?r={$r_type}&t=1&id={$icdb->id}";
} else {
$prv_url = "ic2.php?r={$r_type}&t=1&uri={$url_en}";
}
$prv_url .= $this->img_dpr_query;
if ($this->img_dpr === 1.5 || $this->img_dpr === 2.0) {
$prv_onload = sprintf(' onload="autoAdjustImgSize(this, %f);"', $this->img_dpr);
} else {
$prv_onload = '';
}
$img_str = "<img src=\"{$prv_url}\"{$prv_onload}>";
}
$inline_preview_done = true;
} else {
$img_str = '[p2:既得画像(ランク:' . $icdb->rank . ')]';
}
}
// 自動スレタイメモ機能がONでスレタイが記録されていないときはDBを更新
//.........这里部分代码省略.........