fix #1510 이미지 상대경로 처리 보완

This commit is contained in:
bnu 2015-06-04 17:08:24 +09:00
parent f6a538a655
commit 0130ab6493
2 changed files with 23 additions and 5 deletions

View file

@ -236,7 +236,7 @@ class TemplateHandler
$buff = preg_replace('@<!--//.*?-->@s', '', $buff);
// replace value of src in img/input/script tag
$buff = preg_replace_callback('/<(?:img|input|script)(?(?=[[:space:]]+?cond=")[[:space:]]+?cond="[^"]+"|)[^<>]*[[:space:]]src="(?!https?:\/\/|[\/\{])([^"]+)"/is', array($this, '_replacePath'), $buff);
$buff = preg_replace_callback('/(<(?:img|input|script).+src=")(?!(?:https?|file):\/\/|[\/\{])([^"]+)("[^>]+>)/is', array($this, '_replacePath'), $buff);
// replace loop and cond template syntax
$buff = $this->_parseInline($buff);
@ -415,18 +415,18 @@ class TemplateHandler
private function _replacePath($match)
{
//return origin conde when src value started '${'.
if(preg_match('@^\${@', $match[1]))
if(preg_match('@^\${@', $match[2]))
{
return $match[0];
}
//return origin code when src value include variable.
if(preg_match('@^[\'|"]\s*\.\s*\$@', $match[1]))
if(preg_match('@^[\'|"]\s*\.\s*\$@', $match[2]))
{
return $match[0];
}
$src = preg_replace('@^(\./)+@', '', trim($match[1]));
$src = preg_replace('@^(\./)+@', '', trim($match[2]));
$src = $this->web_path . $src;
$src = str_replace('/./', '/', $src);
@ -439,7 +439,7 @@ class TemplateHandler
$src = $tmp;
}
return substr($match[0], 0, -strlen($match[1]) - 6) . "src=\"{$src}\"";
return $match[1] . $src . $match[3];
}
/**