2010-08-17 4 views
0

Я пытаюсь сделать часть моего кода php5 на устаревшем сервере, который, к сожалению, не может быть обновлен (клиентская машина).Портирование PHP5 на устаревший PHP4, DOMDocument quibbles

if (!isset($docRoot)) { 
    $docRoot = $_SERVER['DOCUMENT_ROOT']; 
} 

// generic storage class for the words/phrases 
$t = new stdClass(); 
$t->lang = $curPage->lang; 



// load xml translations, could split this into different files.. 
$translations = new DOMDocument(); 
$translations->load($docRoot."/xml/translations.xml"); 

$words = $translations->getElementsByTagName("word"); 
$count = 0; 
foreach($words as $word) 
{ 

    $name = $word->getAttribute('name'); 
    $trans = $word->childNodes; 

    if ($trans->length > 0) { 
     for($i = 0; $i < $trans->length; $i++) { 
      $child = $trans->item($i); 



      if ($child->nodeName == $curPage->lang) { 
       $t->$name = $child->nodeValue; 
      } 


     } 
    } 

} 

Я дошел до разработки, что DOMDocument отсутствует тонну методов в PHP4 (это php4.4.4, на коробке CentOS), некоторые из которых, кажется, заменен глобальных статических функций. . domxml_open_file()? XML также имеет кодировку UTF8, а сайт находится в ISO-8859-1.

Итог здесь, я потерян! Как заставить этот материал работать с устаревшим php4? Есть ли какие-либо проблемы с использованием unicode на php4 ..?

Спасибо.

+0

Честно говоря, вам, возможно, повезло сделать параллельную установку PHP 5.3.3 в FastCGI, чем переносить этот код на неподдерживаемую четырехлетнюю версию 4.x. – Charles

+0

Не вариант, к сожалению .. – dmp

+0

На самом деле было не так уж плохо Чарльз, просто нужно было найти приличную библиотеку XML, которая была поддержана на php4. – dmp

ответ

1

Ну, мне удалось это сделать - к счастью, я нашел на ister.org backport функций simpleXML php5, которые отлично работают на php4.4. Я переписал много кода, и это было не слишком сложно.

Надеюсь, это поможет кому-то еще в будущем.

Смежные вопросы