4

XML出力を提供するURLがあります。次の形式を使用してブラウザからアクセスできるユーザー名とパスワードが必要です。

http://ユーザー名:パスワード@url.com

ただし、php ファイルからアクセスしようとすると、403 禁止されます。

$url = "http://username:password@url.com";


$xml = @simplexml_load_file($url);
print_r($http_response_header);

curl を使用してユーザー エージェントをブラウザに設定しようとしましたが、それでもデータがエコーされません。

編集:

また、pear の http request 2 も使用してみましたが、これも 403 禁止されています。

4

5 に答える 5

7

次のようなことを試してください:

$url = "http://username:password@url.com";
$xml = file_get_contents($url);
$data = new SimpleXMLElement($xml);
于 2012-05-17T20:55:04.797 に答える
1

形式 -- http://username:password@url.com -- は、ブラウザが理解する規則です。ただし、プログラムで HTTP 要求を行う場合は、基本認証用の HTTP ヘッダーを設定する必要があります。*simplexml_load_file* は HTTP ヘッダーをサポートしていないと思いますが、次の例を試してみてください:

fopen("http://$username:$password@url.com");
于 2012-05-17T20:53:30.557 に答える
0

http://pear.php.net/package/HTTP_Request2を使用すると、

$basicAuthRequest = new HTTP_Request2('http://user:password@url.com');

CURL_USERPWDcurl を使用してリクエストのを設定する例もここにあります

于 2012-05-17T20:54:16.647 に答える
0

ただし、整数のみをロードします。xml コンテンツに文字列が読み込まれていません。以下の結果セットを参照してください。

 [2] => SimpleXMLElement Object
            (
                [id] => 145894
                [name] => SimpleXMLElement Object
                    (
                    )

                [description] => SimpleXMLElement Object
                    (
                    )

                [start_date] => SimpleXMLElement Object
                    (
                    )

                [end_date] => SimpleXMLElement Object
                    (
                    )

                [allow_deep_link] => 1
                [program_id] => 6981
                [program_name] => SimpleXMLElement Object
                    (
                    )

                [category_name] => SimpleXMLElement Object
                    (
                    )

                [code] => SimpleXMLElement Object
                    (
                    )

                [tracking_url] => SimpleXMLElement Object
                    (
                    )

            )
于 2014-04-19T13:28:34.937 に答える