2010-08-17 58 views
0

我試圖讓一些我的php5代碼在遺留服務器上工作,遺憾的是無法升級(客戶端機器)。將PHP5移植到傳統PHP4,DOMDocument qu 012

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; 
      } 


     } 
    } 

} 

據我已經得到了作爲工作的是DOM文檔中缺少PHP4一噸的方法(它的php4.4.4,在CentOS的盒子),其中一些似乎是由全球靜態函數來代替。 ...。 domxml_open_file()? XML也有UTF8的編碼,並且該網站在ISO-8859-1中。

這裏的底線是,我迷路了!如何使這個東西在傳統的php4上工作?有沒有關於在php4上使用unicode的問題..?

謝謝。

+0

老實說,在FastCGI下進行PHP 5.3.3的並行安裝比將此代碼移植到不支持的4年舊版4.x版本上可能會更好。 – Charles 2010-08-17 16:15:34

+0

不是一個選項,可悲的是.. – dmp 2010-08-17 16:26:52

+0

其實並沒有那麼糟糕查爾斯,只需要找到一個體面的XML庫支持php4。 – dmp 2010-08-19 09:58:46

回答

1

嗯,我設法得到了這個 - 幸運的是,我在ister.org上找到了一個php5的simpleXML函數的後端,它在php4.4上工作得很好。我已經重寫了很多代碼,並且它不是太棘手。

希望這可以幫助別人在未來。