function transform($xslfile, $xml, $no_dbg = false) { if (Param('_DBG') && !$no_dbg) { //print_r(debug_backtrace()); //setcookie('111', '222'); //die(); header("Content-type: text/xml"); print trim($xml); die; } //$phpver = explode('.', PHP_VERSION); //if ($phpver[0] == 5) { if (extension_loaded('xslcache')) { $xslt = new xsltCache(); $xslt->importStyleSheet($xslfile); } else { $xslt = new xsltProcessor(); $xsltDoc = DomDocument::load($xslfile); $xslt->importStyleSheet($xsltDoc); } $doc = new DOMDocument(); $load_succesfull = $doc->loadXML($xml); if ((!$load_succesfull || @$_GET['_BAD_XML_TEST']) && !Param('_DBG')) { //error //Redirect( '/error.php?error=xml&url='.$_SERVER['REQUEST_URI'] ); if (SITE == 'http://dev.starhit.ru') { die(file_get_contents('http://www.starhit.ru/error.php?error=xml')); } die(file_get_contents(SITE . '/error.php?error=xml')); } else { $galleries = $doc->getElementsByTagName('gallery'); foreach ($galleries as $gallery) { $images = $gallery->getElementsByTagName('image'); foreach ($images as $image) { foreach ($this->dsp->ae->size as $size => $params) { $img = $image->getElementsByTagName($size)->item(0); $width = $img->getAttribute('width'); if (!$width) { $img_sizes = $this->dsp->eis->GetSizeByURL($img->nodeValue); $img->setAttribute('width', $img_sizes[0]); $img->setAttribute('height', $img_sizes[1]); } } } } $result = $xslt->transformToXML($doc); } //} if (@$_GET['XSLT_INFO']) { echo '$xslt->hasExsltSupport(): ' . $xslt->hasExsltSupport() . ' $xslfile: ' . $xslfile . ' extension_loaded("xslcache"): ' . extension_loaded("xslcache") . ' XSL_CLONE_AUTO: ' . XSL_CLONE_AUTO . ' XSL_CLONE_NEVER: ' . XSL_CLONE_NEVER . ' XSL_CLONE_ALWAYS: ' . XSL_CLONE_ALWAYS . ' LIBXSLT_VERSION: ' . LIBXSLT_VERSION . ' LIBXSLT_DOTTED_VERSION: ' . LIBXSLT_DOTTED_VERSION . ' LIBEXSLT_VERSION: ' . LIBEXSLT_VERSION . ' LIBEXSLT_DOTTED_VERSION: ' . LIBEXSLT_DOTTED_VERSION . ' $xslt: ' . print_r($xslt, 1) . ' '; var_dump($doc->saveXML(), $xsltDoc->saveXML(), $xslt->transformToXML($doc)); die; } return $result; }