2011-07-10 10 views
0

simplexml_load_file関数と関係があるクライアントサイトを安全に参照すると、多くのエラーが発生します。ここでは例です:simplexml_load_file安全に閲覧しているときの問題

Warning: simplexml_load_file() [function.simplexml-load-file]: https://xxxxxxxx/settings.xml:1 : parser error : Document is empty in /xx/xx/xx/xx/xx/ on line 0

サイトがたシングルから専用サーバー上にあります。 https://でサイトを閲覧したときにのみ発生し、http://で閲覧すると問題なく動作します。

同様https://でうまくXMLファイルをロードするようだ: https://consumerstrust.org/wp-content/plugins/easyfanpagedesign/framework/settings.xml

XMLをクラスから解析されます。

public function efpd_load_settings($xmlfile){ 
    $xmlparse=simplexml_load_file($xmlfile); 
    $settings=array(); 
    $setint=0; 
    foreach($xmlparse->option as $xml){ 
     $option[$setint]=(array)$xml; 
     array_push($settings,$option[$setint]); 
     $setint++; 
    } 
    return $settings; 
} 

と、次のように走った:

$efpdxml=plugins_url('settings.xml',__FILE__); // plugins_url() is a WP function - returns the value just fine. 
$efpdsettings=Efpd::efpd_load_settings($efpdxml); 

これは一般的に起こることですか?それを修正する何か?私がこれを解決するのに役立つ情報が必要な場合は、私に知らせてください。私はそれを提供します。

ありがとうございました。

+0

あなたのcURLにファイルをリクエストしようとしましたか? –

+1

エラーは、ドキュメントが空であることを示しているようです(子ノードがないため)。ブラウザで 'https'を使ってアクセスして、XMLを見ることができますか? –

+0

@ brady.vitrano - 私はそれを正直にする方法はあまりよく分かりません。( - @Francois Deschenes - 私は 'https'を使ってXMLファイルにアクセスしました。 – Jared

答えて

0

私は自分自身の問題を理解しましたが、私を助けてくれたあなたに感謝します。それは有り難いです。

私のソリューション:

これはWordPressで実行されていたので、私は本当にWPSEサイトでこれを掲載している必要がありますが、私はこのサイトからWPについてのすべてを知っていないため、誰のせいにしない場合は、それらしなかった。

機能plugins_url()は私がdirname(__FILE__).'/settings.xml'を使用している必要があり、XMLファイルへのパスを定義するために使用されているべきではありません - あなたはどのようにplugins_url()作品を知っていれば、私はそれを完全に見落としが、最終的に理由としてかなり明白です私の問題を解決しました。

0

私はただfile_get_contentsがうまく動作することを確認しました。 https URLでsimplexml_load_fileを使用して

$content = file_get_contents("https://consumerstrust.org/wp-content/plugins/easyfanpagedesign/framework/settings.xml"); 
    if (empty($content)) { 
     die('XML is empty'); 
    } 
    $xml = simplexml_load_string($content); 

編集

も私のために働きました。これは唯一の方法です。

+0

ここに行くと、https://consumerstrust.orgにすべてのエラーが表示されます。http://consumerstrust.orgにアクセスすると、遠ざかります。非常に奇妙なことに、私は決して遭遇したことがありません。 – Jared

+0

リモートサーバーからhttpsを使用してXMLファイルをロードしようとすると、XMLファイルを読み込む際に問題が発生していると思っていました。手助けをするには、そのファイルのロード方法のコードを表示する必要があります。 –

+0

ありがとう、私は自分のアプリケーションからいくつかのコードサンプルで私の質問を更新しました。 – Jared

関連する問題