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; } }