discuz x3.4发表文章时,截图粘贴图片后,编辑框里可以看到图片,但是发表后图片无法显示。
浪费我3个小时的时间审计了一波,终于发现问题。
原因是:图片标签<img src=http://data:image...>显示的图片被自动添加了http://,造成无法显示图片
解决方案是,打开source/function/function_discuzcode.php
第511行,增加一个替换
$url = str_replace("http://data:image","data:image",$url);
就可以解决了。
- function bbcodeurl($url, $tags) {
- if(!preg_match("/<.+?>/s", $url)) {
- if(!in_array(strtolower(substr($url, 0, 6)), array('http:/', 'https:', 'ftp://', 'rtsp:/', 'mms://')) && !preg_match('/^static\//', $url) && !preg_match('/^data\//', $url)) {
- $url = 'http://'.$url;
- $url = str_replace("http://data:image","data:image",$url);
- }
- return str_replace(array('submit', 'member.php?mod=logging'), array('', ''), str_replace('{url}', addslashes($url), $tags));
- } else {
- return ' '.$url;
- }
- }
复制代码
|