Всем привет. Вчера перенес с хоста сайт на денвер, разработчик не я... Возникла проблема, выдает ошибку Код (Text): Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in Z:\home\test1.ru\www\p\wp-content\stuff\repertory\helper.php:23 Stack trace: #0 Z:\home\test1.ru\www\p\wp-content\stuff\repertory\helper.php(23): SimpleXMLElement->__construct('') #1 Z:\home\test1.ru\www\p\wp-content\stuff\repertory\helper.php(33): helper_load() #2 Z:\home\test1.ru\www\p\wp-content\stuff\repertory\generator_future.php(17): include('Z:\home\test1.r...') #3 Z:\home\test1.ru\www\p\wp-content\themes\p3\page.php(22): include('Z:\home\test1.r...') #4 Z:\home\test1.ru\www\p\wp-includes\template-loader.php(37): include('Z:\home\test1.r...') #5 Z:\home\test1.ru\www\p\wp-blog-header.php(16): require_once('Z:\home\test1.r...') #6 Z:\home\test1.ru\www\p\index.php(17): require('Z:\home\test1.r...') #7 {main} thrown in Z:\home\test1.ru\www\p\wp-content\stuff\repertory\helper.php on line 23 Подскажите пожалуйста в какую сторону копать.
Да, движок вордпресс... Но тут одно но... почему и пришел сюда, это потому что скрипт который выдает ошибку отношения к вордпресс прямого не имеет, не считая того что просто находится в директории сайта)) На хостинге все работает, а вот на локальном (денвере) не хочет. Что то с настройками php наверное...
Вот часть кода Код (Text): function helper_load() { $path = "repertory/"; global $helper; try { $xml = new SimpleXMLElement(file_get_contents($path."annotations.xml")); } catch (Exception $e){} foreach ($xml->lecture as $lecture) { $title = simplify( (string)$lecture->title ); $description = (string)$lecture->description; $helper[$title] = $description; } } $helper = array(); helper_load(); $n = 0; $tooltips = ""; function helper_find($title) { global $helper, $n, $tooltips; $t = simplify($title); if (array_key_exists($t, $helper)) { $n++; $tooltips .= '<div class="tooltip" id="tt'.$n.'"><p>'.$helper[$t].'</p></div>'; return "tg" . $n; } return false; }
VampiR_WAR весь код хелпера, да еще и в тегах PHP: а не [code] если покажешь - может кто и поможет. Тут ничерта не понятно. Там тоже. =) Номера строк даются не просто так
Извините PHP: Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in Z:\home\test1.ru\www\p\wp-content\stuff\repertory\helper.php:23 Stack trace: #0 Z:\home\test1.ru\www\p\wp-content\stuff\repertory\helper.php(23): SimpleXMLElement->__construct('') #1 Z:\home\test1.ru\www\p\wp-content\stuff\repertory\helper.php(33): helper_load() #2 Z:\home\test1.ru\www\p\wp-content\stuff\repertory\generator_future.php(17): include('Z:\home\test1.r...') #3 Z:\home\test1.ru\www\p\wp-content\themes\p3\page.php(22): include('Z:\home\test1.r...') #4 Z:\home\test1.ru\www\p\wp-includes\template-loader.php(37): include('Z:\home\test1.r...') #5 Z:\home\test1.ru\www\p\wp-blog-header.php(16): require_once('Z:\home\test1.r...') #6 Z:\home\test1.ru\www\p\index.php(17): require('Z:\home\test1.r...') #7 {main} thrown in Z:\home\test1.ru\www\p\wp-content\stuff\repertory\helper.php on line 23 PHP: <?php error_reporting(E_ERROR); function simplify($s) { $lc = "àáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿ¨"; $uc = "ÀÁÂÃÄÅÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßÅ"; $s = iconv("UTF-8", "CP1251", $s); $t = ""; for ($i=0; $i<strlen($s); $i++) { $p = strpos($lc, $s[$i]); if ($p !== false) $t .= $uc[$p]; if (strpos($uc, $s[$i]) !== false) $t .= $s[$i]; } return $t; } function helper_load() { $path = "repertory/"; global $helper; try { $xml = new SimpleXMLElement(file_get_contents($path."annotations.xml")); } catch (Exception $e){} foreach ($xml->lecture as $lecture) { $title = simplify( (string)$lecture->title ); $description = (string)$lecture->description; $helper[$title] = $description; } } $helper = array(); helper_load(); $n = 0; $tooltips = ""; function helper_find($title) { global $helper, $n, $tooltips; $t = simplify($title); if (array_key_exists($t, $helper)) { $n++; $tooltips .= '<div class="tooltip" id="tt'.$n.'"><p>'.$helper[$t].'</p></div>'; return "tg" . $n; } return false; } function helper_tooltips() { global $tooltips; echo $tooltips; } function helper_functions() { global $n; echo "<script> var canhide=true; $(document).ready(function() {"; for ($i=1; $i<=$n; $i++) echo '$("#tg'.$i.'").tooltip("#tt'.$i.'");'; echo '$("a.book").tooltip({tip:"#ttbook",delay:0500, onBeforeHide:function(){return canhide;} });'; echo "}); </script>"; } ?>
ну может путь как-то не так написан? repertory/annotations.xml попробуй /repertory/annotations.xml или repertory\annotations.xml или \repertory\annotations.xml =) и кстати проверь что этот файл из этого скрипта вобще доступен по этому адресу, может скрипт не оттуда запускается
Проверю. Я просто еще пытался понять что говорит эта ошибка... Дело в том что не сталкивался с таким... Был бы предельно рад если бы обьяснили смысл ошибки, а то электронный переводчик и поисковики ничего не разъяснили...:-(
VampiR_WAR или файл не может прочитать (как заметил igordata проверь пути), или же в файле содержится некорректный xml-код
VampiR_WAR http://www.google.ru/search?aq=f&source ... th+message Третий пункт сверху - неправильно обращаешься к узлу XML, вот парсер и генерит ошибку.
Млин, вопрос так и не ммогу никак решить... Это происходит при переносе сайта на другой хостинг, или локальный хостинг. Дело в том что и денвер у меня выдал то же ссамое и новый хостинг... а на старом все работает... Может что нибудь с настройками php? файлы переносил все как положено, местами не переставлл. Млин, и разбираться и править скрипт времени нет... В принципе пути не могут отличаться, так как они относительные и лежат по отношению друг к другу так же... Единственная мысль это настройки сервера...