web-dev-qa-db-ja.com

file_get_contentsが機能していませんか?

このコードはサーバーに対して機能していません。しかし、それは私のローカルホスト(xampp)に働いています

$url = file_get_contents('http://www.site.com/');
$xhtml='|<tr style="background-color:#dddddd;">
        <td class="odd" align="left">(.+?)</td><td class="odd">(.+?)</td>
    </tr>|i';
preg_match_all($xhtml,$url,$score);
array_shift($score);
echo"<pre>";
print_r($score);
echo"</pre>";

このようにコードを変更すると、別のスコアが出力されます。このような2つの行があるためです。同じコードです。ちなみに、コードはサーバーに対して機能します。

$xhtml='|<td class="odd" align="left">(.+?)</td><td class="odd">(.+?)</td>|i';

コード間でこの2つの値を取る必要があります。

allow_url_fopen = on
15
Venom

file_get_contents()の代わりにこの関数を試してください:

<?php

function curl_get_contents($url)
{
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}

File_get_contents()と同じように使用できますが、cURLを使用します。

Ubuntu(またはaptitudeを備えた他のUnixライクなオペレーティングシステム)にcURLをインストールします。

Sudo apt-get install php5-curl
Sudo /etc/init.d/Apache2 restart

参照 cURL

27
Adelmar

許可する必要があります

 allow_url_fopen

php.ini設定ファイル内。一部のホストはセキュリティのためにそれを拒否します

19
genesis

私はこのトピックが古いことを知っていますが、私は自分でこれを理解し、後で誰かを助けると考えなければなりませんでした。

上記のように言う:

必要なもの:

uRLを許可fopen許可URLを含める

CURLを使用している場合は、curl拡張機能が必要です

Https://のfile_get_contentsの場合は、Apache sslモジュールとopenssl php拡張モジュールも必要だと思います。

OpenSSLとSSLモジュールがFacebookグラフ(明らかにhttps://)でfile_get_contentsを実行しないと、「ファイルが見つかりません」エラーが返されました。

10
David Lawrence

また、次のことも確認してください。allow_url_include On

403 Forbiddenのようなネットワーク権限の問題がないことを確認してください。

2
shasi kanth

allow_url_fopen is On次に、firewallまたはcsfそしてもう一度確認してください。

0
afshin

私たちはこの問題を抱えていて、それが異常なものであることが判明しました。 file_get_contents( ' https://www.google.com ');私たちにとっての問題は、サーバーがipv6を使用するように設定されていましたが、ipv6 ipが割り当てられていなかったためです。私たちはipv6を無効にし、ipv4を使用させ、それが機能しました。リストのもう1つを確認してください。

0
henry