0

次のコードを開発します。

if (time() - filemtime('current.txt') > 5)
{
$xml = simplexml_load_file("http://live.liveradio.ir:8000/liveradiomp3_48.xspf");
    foreach($xml->children() as $child)
    {
        if ($child->getName() == 'trackList')
        {
            foreach($child as $child2)
            {
                if ($child2->getName() == 'track')
                {
                    foreach($child2 as $child3)
                    {
                        if ($child3->getName() == 'title')
                        {
                            $fp = fopen('current.txt', 'w');
                            fwrite($fp, json_encode(array('data',$child3)));
                            fclose($fp);
                        }
                    }
                }
            }
        }
    }
}
echo (file_get_contents('current.txt'));

しかし、実行すると次のページが表示されます。

サーバーエラー
http://liveradio.ir/temp.php の取得中に Web サイトでエラーが発生しました。メンテナンスのために停止しているか、正しく構成されていない可能性があります。
以下にいくつかの提案を示します。
このウェブページをあとでリロードしてください。
HTTP エラー 500 (内部サーバー エラー): サーバーが要求を実行しようとしているときに、予期しない状況が発生しました。

temp.phpとの許可current.txtは777です。次の行にコメントすると、問題は解決しました。

$fp = fopen('current.txt', 'w');
fwrite($fp, json_encode(array('data',$child3)));
fclose($fp);
echo (file_get_contents('current.txt'));

問題はどこだ?このコードは localhost で正しく動作します。

4

2 に答える 2

0

この特別なポート8000​​を介したXMLのフェッチが、リモートサーバー構成で許可されていることを確認する必要があります。

于 2013-03-08T16:20:03.573 に答える
0

URL はオフラインです。それがあなたの主な問題です;)

于 2012-07-02T10:47:55.003 に答える