header('x-forwarded-for', false);
if ($ip1) {
$arr = explode(",", $ip1);
if (count($arr) > 0) {
return trim($arr[0]);
}
}
return request()->ip();
}
function plugins_path($path = ''): string
{
if (mb_strlen($path) > 0) {
if (strpos($path, "/") == 0) {
return $_ENV['plugins_dir_name'] . $path;
}
return $_ENV['plugins_dir_name'] . '/' . $path;
}
return $_ENV['plugins_dir_name'] . "/";
}
function is_demo_mode($is_exit = false)
{
if (env('demo_mode')) {
if ($is_exit) {
json(["msg" => "演示模式,部分功能受限,禁止更新或删除!", "code" => 0])->send();
exit();
}
return true;
}
return false;
}
function modifyImageUrls($htmlContent, $newBaseUrl): string
{
try {
$dom = new DOMDocument();
$htmlContent = mb_convert_encoding($htmlContent, 'HTML-ENTITIES', 'UTF-8');
libxml_use_internal_errors(true);
$wrappedContent = '
' . $htmlContent . '
';
$dom->loadHTML($wrappedContent, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$images = $dom->getElementsByTagName('img');
foreach ($images as $img) {
$oldSrc = $img->getAttribute('src');
if (!preg_match('/^http/', $oldSrc)) {
$newSrc = $newBaseUrl . $oldSrc;
$img->setAttribute('src', $newSrc);
}
}
// 返回修改后的 HTML,去掉根节点
$newHtmlContent = '';
foreach ($dom->documentElement->childNodes as $child) {
$newHtmlContent .= $dom->saveHTML($child);
}
return $newHtmlContent;
} catch (Exception $e) {
return $htmlContent;
}
}
function removeImagesUrls($htmlContent, $newBaseUrl)
{
try {
$dom = new DOMDocument();
$htmlContent = mb_convert_encoding($htmlContent, 'HTML-ENTITIES', 'UTF-8');
libxml_use_internal_errors(true);
$wrappedContent = '' . $htmlContent . '
';
$dom->loadHTML($wrappedContent, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$domain = $newBaseUrl;
$images = $dom->getElementsByTagName('img');
foreach ($images as $img) {
$oldSrc = $img->getAttribute('src');
$newSrc = str_replace($domain, '', $oldSrc);
$img->setAttribute('src', $newSrc);
}
// 返回修改后的 HTML,去掉根节点
$newHtmlContent = '';
foreach ($dom->documentElement->childNodes as $child) {
$newHtmlContent .= $dom->saveHTML($child);
}
return $newHtmlContent;
} catch (Exception $e) {
return $htmlContent;
}
}