2

別のサーバーでホストされている外部ファイルを読み込もうとしていますが、問題があります。

ここで、変数を識別します。

$variable1 = "test";
$variable2 = "testing";

ここで、読み取る URL を特定します。

$url = "http://test.com/page.php?v1=" . $variable1 . "&v2=" . $variable2;

ここで、外部ファイルを読み取ります。

$content = file($url);
$reading = $content[0];
echo $reading;

何も出てこないのが不思議。実際の URL を入力してみましたが、うまくいきますが、PHP で入力しようとすると空白になります。

そこに通常のテキストを入れてみたので、致命的なエラーではないことはわかっています。そのため、ファイルを正しく読み取っていないという問題があります。さらに、読み取りサーバーがファイルを含むサーバーによってブロックされていないことを確認しました。

任意の提案をいただければ幸いです。

4

6 に答える 6

0

さらに、読み取りサーバーがファイルを含むサーバーによってブロックされていないことを確認しました。

どのように確認しましたか?


まず、 が入っていることを確認allow_url_fopenonますphp.ini

である場合はon、ユーザー エージェントを設定してみてください。リモート ファイルには、有効なユーザー エージェントが必要な場合があります。

ini_set('user_agent', 'Your browser\'s user agent or whatever');

である場合はoffcURL ライブラリを使用してリモート ファイルを要求してみてください。cURL を使用してユーザー エージェントを設定することもできます。

于 2011-09-04T01:28:40.590 に答える
0

PHP の関数file_get_contentsを試すことができます

echo file_get_contents($url);
于 2011-09-04T01:29:29.873 に答える
0

ファイルを読み取ってリモート URL から解析するには、php.ini 設定でオプションallow_url_fopenが有効になっていることを確認する必要があります。

セキュリティ上の理由から、このオプションはデフォルトで無効になっていることに注意してください。

http://php.net/manual/en/filesystem.configuration.php

PHP で「allow_url_fopen」を許可する必要がありますか?

于 2011-09-04T01:30:04.570 に答える
0

URL をファイル名として使用している場合は、php.ini で allow_url_fopen を有効にする必要があります。私はそこから始めます。

于 2011-09-04T01:31:10.763 に答える
0

Web サイトをフェッチしていて、それが のようなもので始まる<html>場合、ブラウザーから表示したときに $content[0] をエコーし​​ても表示されません。

試す:

echo htmlentities($content[0]);

または:

print_r($content);
于 2011-09-04T01:36:47.200 に答える
0

file()データを配列にロードします。次に、このドキュメントの最初の行のみをエコー出力します ( echo $reading[0])。<html>その最初の行は、タグまたはおそらく doctype 宣言のみである可能性があります。

ファイルの内容全体を単純にエコーアウトしようとしている場合は、次のようにします。

echo file_get_contents($url);

これは、指定された URL を取得し、単一の文字列として返します。行の解析も配列の作成もありません。ファイル全体を含む単純な文字列です。

于 2011-09-04T02:11:40.200 に答える