2012-03-06 23 views
0

一個錯誤,我知道我打擾你們與我的問題,但我有一個關於PHP和XML在PHP和XML

我試圖存儲在XML頁面中的所有值,所以我會產生問題一個多語種的網站

搜索我有一個辦法,但我試圖改變它一點點 有我的XML文件後:

en.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<main> 

    <!--Page Titles--> 
    <freeEaHdr> 
     <![CDATA[Get in the game!]]> 
    </freeEaHdr> 
    <freeEaSubhdr> 
     <![CDATA[Load up your Xperia™ PLAY with 4 exciting EA titles for<span style="color:#ff9c00;"> FREE</span>]]> 
    </freeEaSubhdr> 
    <!--Page Titles--> 

</main> 

和有我的ar.xml

<?xml version="1.0" encoding="UTF-8"?> 
<main> 

    <!--Page Titles--> 
    <freeEaHdr> 
     <![CDATA[ادخل اللعبة]]> 
    </freeEaHdr> 
    <freeEaSubhdr> 
     <![CDATA[حمل الاكسبيريا الان]]> 
    </freeEaSubhdr> 
    <!--Page Titles--> 

</main> 

,我已經創建了一個select_lang.php

<?php 
function select_lang(){ 
    if(isset($_GET['lang'])){ 
     $lang = $_GET['lang']; 
     if($lang == "en"){ 
      $xml = simplexml_load_file("en.xml"); 
     } else{ 
      $xml = simplexml_load_file("ar.xml"); 
     } 
    } else { 
      $xml = simplexml_load_file("en.xml"); 
    } 
    return $xml; 
} 
?> 

,並在最後一頁中的index.php

<?php 
include("select_lang.php"); 
select_lang(); 
?> 
<div><?php echo $xml->freeEaHdr; ?></div> 
<div><?php echo $xml-> freeEaSubhdr; ?></div> 
<a href="?lang=en">english</a> 
<a href="?lang=ar">arabic</a> 

現在當然我得到index.php中的錯誤與主要的xml變量沒有定義,所以如果有人有解決方案

謝謝推進

和抱歉打擾你

+0

你能後的實際的錯誤?另外,''>和freeEaSubhdr'之間有一個空格:<?php echo $ xml-> freeEaSubhdr; ?> – 2012-03-06 01:43:20

+0

注意:未定義的變量:第5行中的/Users/moustafa/Sites/lang_test/index.php中的xml 注意:試圖在/Users/moustafa/Sites/lang_test/index.php中獲取非對象的屬性在第5行 說明:未定義變量:XML在/Users/moustafa/Sites/lang_test/index.php第6行 說明:試圖獲得在/用戶/穆斯塔法/站點/ lang_test /索引非對象的屬性第6行的.php 英語阿拉伯語 – 2012-03-06 01:43:22

回答

2

select_lang()函數返回創建的SimpleXML對象$xml。然後嘗試在index.php文件中使用此對象,但實際上並沒有將返回值select_lang()分配給任何內容。

簡單地做

$xml = select_lang(); 

代替

select_lang(); 

會讓你實際使用返回的XML對象在你的index.php文件。

+0

非常感謝你非常非常非常非常非常保存了一天 – 2012-03-06 01:48:08

0

嘗試:

<?php 
include("select_lang.php"); 
$xml = select_lang(); //change this line 
?>