return true;
}
- function _writeAttrs ($attrs)
+ function _writeAttrs ($attrs,$tag=null)
{
if (is_array($attrs)) {
foreach ($attrs as $name => $value) {
if (strpos($name, 'data') === 0) {
continue;
}
- if (in_array($name, $this->attributes)) {
+ if ($tag !='a' AND in_array($name, $this->attributes)) {
continue;
}
if (!preg_match("/^[a-z0-9-]+$/i", $name)) {
}
}
- $tempval = preg_replace('/&#(\d+);?/me', "chr('\\1')", $value); //"'
- $tempval = preg_replace('/&#x([0-9a-f]+);?/mei', "chr(hexdec('\\1'))", $tempval);
+ $tempval = preg_replace_callback('/&#(\d+);?/m', create_function('$m', 'return chr($m[1]);'), $value);
+ $tempval = preg_replace_callback('/&#x([0-9a-f]+);?/mi', create_function('$m', 'return chr(hexdec($m[1]));'), $tempval);
if ((in_array($name, $this->protocolAttributes)) &&
(strpos($tempval, ':') !== false))
}
$this->_xhtml .= '<' . $name;
- $this->_writeAttrs($attrs);
+ $this->_writeAttrs($attrs,$name);
$this->_xhtml .= '>';
array_push($this->_stack,$name);
$this->_counter[$name] = isset($this->_counter[$name]) ? $this->_counter[$name]+1 : 1;