2012-10-22 74 views
-1

您好,我有下面的代碼在PHP:如何解析OOP PHP中的鏈接?

class parser { 
    public function __construct($link) 
    { 
    $xml = @simplexml_load_file($link); 
    if (!$xml) { 
     echo 'Error while parsing the document'; 
     exit; 
    } 
    } 
$file = urldecode($_REQUEST['ftitle']); 
$obj = new parser($file); 

我得到了在if部分提到的錯誤。

,但如果我用簡單的方式嘗試的意思是說我嘗試無階級的方式整片代碼工作的準確與任何problem..plz告訴我有我的面向類的方法的任何錯誤。 日Thnx提前:)

+1

刪除'@'準確地工作,看到實際的錯誤是什麼。 – Leri

+0

我必須這樣做,但在麪包車:(並得到了以下錯誤: 警告:使用simplexml_load_file()[function.simplexml加載文件]:I/O警告:未能加載外部實體 –

+0

是因爲URL無效...而不是指向一個XML文件 – Baba

回答

2

您的類是無效你在年底失蹤} ....使用@抑制誤差不勸

!$xml將是真實的所以用這個來代替

if ($xml === false) { 

這是什麼意思???

$xml = simplexml_load_string("<body />"); 

var_dump(!$xml); // returns true 
var_dump($xml); // return object(SimpleXMLElement)[1] 
+0

我認爲丟失的大括號只是一個錯字 – Leri

+1

@PLB增加了額外的信息... – Baba

+0

其不工作以及 –

0

試試這個,我認爲這會幫助你,因爲它在我的`simplexml_load_file`前面本地主機

class parser { 
    public function __construct($link) 
    { 
    $xml = @simplexml_load_file($link); // replace it with the following line. 
    $xml =new SimpleXMLElement($link, NULL, TRUE); 
    if (!$xml) { 
     echo 'Error while parsing the document'; 
     exit; 
    } //if end 
    } //constructor end 
    } //class end 
$file = urldecode($_REQUEST['ftitle']); //replace it with the following line. 
$file = $_REQUEST['ftitle']; 
$obj = new parser($file);