/** * Removes the base path of the URL to HTML resources * * @param string $html * @return string|bool If error, then output FALSE */ protected function deleteBasePathUrl($html) { //$domHtml $str_begin = '<?xml version="1.0" encoding="utf-8"?>' . "\n" . '<body>'; $str_end = '</body>'; //--------------------------- $filtrHtmlEntities = new Default_Form_Filter_HtmlEntities(); $html = $filtrHtmlEntities->filter($html); $html = $str_begin . $html . $str_end; // Check for correct XML $domDoc = new DOMDocument('1.0', 'utf-8'); $success = $domDoc->loadXML($html); if (!$success) { return FALSE; } // Correct code $domQuery = new Zend_Dom_Query(); $domQuery->setDocumentXml($html, "utf-8"); foreach (self::$tags as $tag => $attr) { $results = $domQuery->query($tag); if ($results->count()) { foreach ($results as $result) { // $result variable is of DOMElement type if ($result->hasAttribute($attr)) { $value = $result->getAttribute($attr); $st = new Default_Plugin_String($value); if ($st->beginsWith('/')) { // it was: /zf-myblog/public/pic/1.gif // it is: /pic/1.gif $baseURL = Default_Plugin_SysBox::getBaseURL(); $value = str_replace($baseURL, '', $value); $result->setAttribute($attr, $value); } else { // it was: https://mysite.com:8080/zf-myblog/public/pic/1.gif // it is: /pic/1.gif $hostPortBaseURL = Default_Plugin_SysBox::getHostPortBaseURL(); $value = str_replace($hostPortBaseURL, '', $value); $result->setAttribute($attr, $value); } } } $domDoc = $results->getDocument(); $html = $domDoc->saveXml(); $domQuery->setDocumentXml($html, "utf-8"); } } $html = str_replace($str_begin, '', $html); $html = str_replace($str_end, '', $html); return $html; }
/** * add the base path to the URL of HTML Resources * * @param string $html * @return string */ protected function addBasePathUrl($html) { //$domHtml $str_begin = '<?xml version="1.0" encoding="utf-8"?>' . "\n" . '<body>'; $str_end = '</body>'; //--------------------------- $html = str_replace(' ', ' ', $html); $html = $str_begin . $html . $str_end; // Check for correct XML $domDoc = new DOMDocument('1.0', 'utf-8'); $success = $domDoc->loadXML($html); if (!$success) { return FALSE; } $domQuery = new Zend_Dom_Query(); $domQuery->setDocumentXml($html, "utf-8"); foreach (self::$tags as $tag => $attr) { $results = $domQuery->query($tag); if ($results->count()) { foreach ($results as $result) { // $result variable is of DOMElement type if ($result->hasAttribute($attr)) { $value = $result->getAttribute($attr); $st = new Default_Plugin_String($value); if ($st->beginsWith('/')) { $baseURL = Default_Plugin_SysBox::getUrlRes($value); $result->setAttribute($attr, $baseURL); } } } $domDoc = $results->getDocument(); $html = $domDoc->saveXml(); $domQuery->setDocumentXml($html, "utf-8"); } } $html = str_replace($str_begin, '', $html); $html = str_replace($str_end, '', $html); return $html; }
static function getPHPInfo() { $str_xml_begin = '<?xml version="1.0" encoding="utf-8"?>'; //--------------------------- // Получить инф. о PHP ob_start(); phpinfo(); $info = ob_get_contents(); ob_end_clean(); // Создадим обьект парсера // и получим содержание тега <BODY>...</BODY> $obj = new Default_Plugin_Domparser(); $obj->setUrl($obj, $info); $info = $obj->getBody(); // Получим строку в формате XML $html = $str_xml_begin . $info; $html = str_replace(' ', ' ', $html); //Проверка на корректость XML $domDoc = new DOMDocument('1.0', 'utf-8'); $success = $domDoc->loadXML($html); if (!$success) { return self::Translate('Ошибка документа - DOM') . '!'; } // Создадим новый документ $domNew = new Default_Plugin_DomBox('1.0', 'utf-8'); // Добавим корневой тег $root = $domNew->createElement('div'); $root->setAttribute('class', 'report-content'); $root = $domNew->appendChild($root); // Найдем нужную инф-ию и вставим ее в новый документ $domQuery = new Zend_Dom_Query(); $domQuery->setDocumentXml($html, "utf-8"); // Заменим сетевые адреса изображений на локальные адреса $images = $domQuery->query('img'); $count = $images->count(); if ($count) { foreach ($images as $image) { $alt = $image->getAttribute('alt'); if ($alt == 'PHP Logo') { $url = self::getFullURL_Res('/images/system/PHPLogo.gif'); $image->setAttribute('src', $url); } if ($alt == 'Zend logo') { $url = self::getFullURL_Res('/images/system/ZendLogo.gif'); $image->setAttribute('src', $url); } } } $domDoc = $images->getDocument(); $html = $domDoc->saveXml(); $domQuery->setDocumentXml($html, "utf-8"); // Обернем таблицы в DIV и установим некоторые атрибуты $listElements = $domQuery->query('div.center > *'); $count = $listElements->count(); $count_tables = 10; foreach ($listElements as $el) { $nodeName = $el->nodeName; // Если это таблица обернем ее в DIV if ($nodeName == 'table') { if ($count_tables > 0) { $count_tables--; } $el->setAttribute('width', '100%'); $tableContainer = $domNew->createElement('div'); $tableContainer->setAttribute('class', 'table-container'); $tableContainer = $root->appendChild($tableContainer); $domNew->appendChilds($tableContainer, $el); } else { $domNew->appendChilds($root, $el); } } $html = $domNew->saveXML(); $html = str_replace($str_xml_begin, '', $html); return $html; }