|
@@ -40,14 +40,16 @@ class PublicData
|
|
|
*/
|
|
|
public static function replaceContentImg($content)
|
|
|
{
|
|
|
- $richTextContent = $content;
|
|
|
- $imageBaseUrl = env("OSS_ENDPOINT")."/".env("BUCKET")."/";// 获取环境变量中的图片基础URL
|
|
|
- $pattern = '/<img\s+src=[\'"]([^\'"]+)[\'"]/i'; // 匹配<img>标签中的src属性值
|
|
|
- $replacement = '<img src="' . $imageBaseUrl . '$1"'; // 替换为带基础URL的路径
|
|
|
- $updatedContent = preg_replace($pattern, $replacement, $richTextContent);
|
|
|
- return $updatedContent;
|
|
|
+ $searchUrl = env("OSS_ENDPOINT")."/".env("BUCKET")."/";// 获取环境变量中的图片基础URL
|
|
|
+ $quotedSearchUrl = preg_quote($searchUrl, '/');
|
|
|
+ // 正则表达式模式,用于匹配img标签中的src属性,并定位$searchUrl的位置
|
|
|
+ $pattern = '/(<img[^>]+src=")(?:' . $quotedSearchUrl . ')?([^"]*")/';
|
|
|
+ // 执行替换,确保全部匹配都被处理
|
|
|
+ $result = preg_replace($pattern, '$1$2', $content);
|
|
|
+ return $result;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 补全富文本内容的图片地址
|
|
|
* @param $content
|
|
@@ -55,16 +57,19 @@ class PublicData
|
|
|
*/
|
|
|
public static function completionContentImg($content)
|
|
|
{
|
|
|
- // 假设这是从数据库获取的富文本内容
|
|
|
- $richTextContent = $content;
|
|
|
- // 从环境变量或配置文件中读取图片基础URL
|
|
|
- $imageBaseUrl = env("OSS_ENDPOINT")."/".env("BUCKET")."/"; // 这里应该用getenv('IMAGE_BASE_URL')等方法获取实际值
|
|
|
- // 使用正则表达式匹配<img>标签中的src属性值,并替换为完整URL
|
|
|
- $pattern = '/<img\s+[^>]*src=[\'"]([^\'"]+\.[a-z]{3,4})[\'"][^>]*>/i';
|
|
|
- $replacement = '<img src="' . $imageBaseUrl . '$1"'; // 注意这里的$1表示匹配到的第一个分组,即原始的src值
|
|
|
+ $prefix = env("OSS_ENDPOINT")."/".env("BUCKET")."/";// 获取环境变量中的图片基础URL
|
|
|
+ // 使用preg_quote来转义$prefix中的特殊字符
|
|
|
+ // 使用preg_quote来转义$prefix中的特殊字符
|
|
|
+ $quotedPrefix = preg_quote($prefix, '/');
|
|
|
+
|
|
|
+ // 正则表达式模式,用于匹配img标签中的src属性
|
|
|
+ $pattern = '/(<img[^>]+src=")([^"]*")/';
|
|
|
+
|
|
|
+ // 替换逻辑:在原src值前加上$prefix
|
|
|
+ $replacement = '$1' . $prefix . substr('$2', 0, -1); // 移除最后一个",然后加上前缀和"
|
|
|
+
|
|
|
// 执行替换
|
|
|
- $updatedContent = preg_replace($pattern, $replacement, $richTextContent);
|
|
|
- // 输出更新后的内容
|
|
|
- return $updatedContent;
|
|
|
+ $result = preg_replace($pattern, "$1$prefix$2", $content);
|
|
|
+ return $result;
|
|
|
}
|
|
|
}
|