protected function createTag($elem) { $name = $elem['name']; $head = "<{$name}"; if (isset($elem['attr'])) { foreach ($elem['attr'] as $attr_name => $value) { $head .= " {$attr_name}=\"" . encodeXml($value) . '"'; } } $content = ''; if (isset($elem['nodes'])) { foreach ($elem['nodes'] as $node) { $content .= is_array($node) ? $this->createTag($node) : encodeXml($node); } } else { if (isset($elem['cdata'])) { $content = $elem['cdata']; } } return $head . ($content === '' ? '/>' : ">{$content}</{$name}>"); }
function encodeHtml($string, $urltolink = false) { $string = encodeXml($string); return str_replace(["\r\n", "\r", "\n", "\t", ' ', ' '], ['<br />', '<br />', '<br />', ' ', ' ', ' '], $urltolink ? preg_replace(['/(?<=^|[\\s(:,;@])(?=www\\.\\w)/', '/(?:\\.\\.?|[a-z\\d.]+:\\/)\\/(?:[\\w\\-=$%:,;~@#?.+\\/]|&)+/i'], ['http://', '<a href="$0" target="_blank">$0</a>'], $string) : $string); }