svg stuff

This commit is contained in:
zotlabs
2019-11-07 14:51:29 -08:00
parent 839c6668cf
commit a5826fec25
4 changed files with 209 additions and 1 deletions

View File

@@ -9,6 +9,8 @@ use Michelf\MarkdownExtra;
use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
use Zotlabs\Lib\SvgSanitizer;
require_once("include/bbcode.php");
// random string, there are 86 characters max in text mode, 128 for hex
@@ -3648,3 +3650,23 @@ function new_uuid() {
return $hash;
}
function svg2bb($s) {
$s = preg_replace("/\<text (.*?)\>(.*?)\<(.*?)\<\/text\>/", '<text $1>$2&lt;$3</text>', $s);
$s = preg_replace("/\<text (.*?)\>(.*?)\>(.*?)\<\/text\>/", '<text $1>$2&gt;$3</text>', $s);
$s = preg_replace("/\<text (.*?)\>(.*?)\[(.*?)\<\/text\>/", '<text $1>$2&#91;$3</text>', $s);
$s = preg_replace("/\<text (.*?)\>(.*?)\](.*?)\<\/text\>/", '<text $1>$2&#93;$3</text>', $s);
$s = utf8_encode($s);
$purify = new SvgSanitizer();
if ($purify->loadXML($s)) {
$purify->sanitize();
$output = $purify->saveSVG();
$output = preg_replace("/\<\?xml(.*?)\>/",'',$output);
$output = preg_replace("/\<\!\-\-(.*?)\-\-\>/",'',$output);
$output = str_replace(['<','>'],['[',']'],$output);
return $output;
}
return EMPTY_STR;
}