dポイントプレゼントキャンペーン実施中!

こんにちは、どうしても解決ができなくて困っています。
お助け願います。

DBからデータを取得し成形するなどした結果をXMLで出力できるようにPHPを用意しました。
ブラウザから確認でき、XMLをソース表示しても問題ありません。

次にこれを読み込むPHPを書いています。
simplexml_load_fileなどでXMLファイルを開くことはこれまでにもやっていたので、直接XMLファイル名を記述するところに用意したPHPを指定しました。

結果はエラー。
いろいろ検証した結果、PHPがアクションする前にPHPファイルが開かれてしまっている感じ。

DOMDocumentのload()やloadXML()で読み込む方法もトライしましたが結果は同じ・・・。

根本的に間違ってますか?
PHPから吐き出されるXMLを読み込むためにXMLファイルを記述するところにPHPスクリプトを指定すること自体が間違っているようにも思っています。

お手数をお掛けいたしますがお教え願います。

A 回答 (3件)

1)


simplexml_load_file('./outputxml.php');
のような表示ではなく、URL経由で
simplexml_load_file('http://www.example.com/outputxml.php');
として落としましょう。

2) web経由が無理であれば、前述のプログラムを関数にして、
吐き出しを変数で渡します。そして、
simplexml_load_file の代わりに
simplexml_load_string で受け取ります。

例えば、
XML出力: outputxml.php
<?
echo file_get_contents('http://okwave.jp/rss.php');
?>
処理 : do.php
<?
$xmldata = simplexml_load_file('./outputxml.php');
?>

ならば、
XML出力: outputxml.php
<?
function outputxml() {
return file_get_contents('http://okwave.jp/rss.php');
}
?>
処理 : do.php
<?
include 'outputxml.php';
$xmldata = simplexml_load_string(outputxml());
?>
などとします。
    • good
    • 0

curl関数で出来そう。


「PHP の cURL モジュールを使用して example.com のホームページを取得する」
http://www.php.net/manual/ja/curl.examples-basic …
    • good
    • 0

javascriptのajax同期通信リクエストみたいなのをphpでするのは困難かも。


XML生成のPHPは実ファイルとしてXMLを書き出すようにして、
読み込みのPHPは
exec ('php xml書き出し.php');  // <=セーフモードだとだめですね。
で、XML書き出しプログラムを実行させ
排他readで読めるようになるまで、処理を待つようにして、
読めるようになったら、XMLファイルを読んでパースする。
とすれば出来るかも?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!