本文整理汇总了PHP中ParserOptions::getAllowExternalImages方法的典型用法代码示例。如果您正苦于以下问题:PHP ParserOptions::getAllowExternalImages方法的具体用法?PHP ParserOptions::getAllowExternalImages怎么用?PHP ParserOptions::getAllowExternalImages使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParserOptions
的用法示例。
在下文中一共展示了ParserOptions::getAllowExternalImages方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: maybeMakeExternalImage
/**
* make an image if it's allowed, either through the global
* option, through the exception, or through the on-wiki whitelist
* @private
*
* $param $url string
*
* @return string
*/
function maybeMakeExternalImage($url)
{
$imagesfrom = $this->mOptions->getAllowExternalImagesFrom();
$imagesexception = !empty($imagesfrom);
$text = false;
# $imagesfrom could be either a single string or an array of strings, parse out the latter
if ($imagesexception && is_array($imagesfrom)) {
$imagematch = false;
foreach ($imagesfrom as $match) {
if (strpos($url, $match) === 0) {
$imagematch = true;
break;
}
}
} elseif ($imagesexception) {
$imagematch = strpos($url, $imagesfrom) === 0;
} else {
$imagematch = false;
}
if ($this->mOptions->getAllowExternalImages() || $imagesexception && $imagematch) {
if (preg_match(self::EXT_IMAGE_REGEX, $url)) {
# Image found
$text = Linker::makeExternalImage($url);
}
}
if (!$text && $this->mOptions->getEnableImageWhitelist() && preg_match(self::EXT_IMAGE_REGEX, $url)) {
$whitelist = explode("\n", wfMessage('external_image_whitelist')->inContentLanguage()->text());
foreach ($whitelist as $entry) {
# Sanitize the regex fragment, make it case-insensitive, ignore blank entries/comments
if (strpos($entry, '#') === 0 || $entry === '') {
continue;
}
if (preg_match('/' . str_replace('/', '\\/', $entry) . '/i', $url)) {
# Image matches a whitelist entry
$text = Linker::makeExternalImage($url);
break;
}
}
}
return $text;
}