Fonksiyonu file_get_contents () için herhangi bir alternatif var mı?

8 Cevap

Benim web barındırma sunucusu, file_get_contents() fonksiyonu devre dışı bırakılır. Ben bir alternatif arıyorum. lütfen yardım

8 Cevap

file_get_contents () hemen hemen şu geliyor:

$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);

File_get_contents () devre dışı olduğundan, yukarıda olsa da işe yaramaz oldukça eminim.

Okumak için çalışıyoruz ne bağlı olarak, ve benim deneyim barındıran genellikle uzaktan dosya okuma devre dışı bırakın, diğer seçenekleri olabilir. Uzaktan dosya (ağ üzerinden, yani http vb) okumak için çalışıyoruz eğer cURL kütüphane işlevleri içine bakmak olabilir

Sen fopen, dosyanın içeriğini almak ve bunları kullanmak ile dosyayı açabilirsiniz? Ve belki cURL sizin için yararlı olur? http://php.net/manual/en/book.curl.php

Her şey biraz.

function ff_get($f) {
        if (!file_exists($f)) { return false; }
        $result = @file_get_contents($f);
        if ($result) { return $result; }
        else {
            $handle = @fopen($f, "r");
            $contents = @fread($handle, @filesize($f));
            @fclose($handle);
            if ($contents) { return $contents; }
            else if (!function_exists('curl_init')) { return false; }
            else {
                $ch = @curl_init();
                @curl_setopt($ch, CURLOPT_URL, $f);
                @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                $output = @curl_exec($ch);
                @curl_close($ch);
                if ($output) { return $output; }
                else { return false; }}}}

Bu kodu deneyin:

$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$content = curl_exec($ch);
curl_close($ch);

Ben http:// veya ftp:// aracılığıyla uzaktan bir dosyaya erişmek için çalışıyoruz varsayalım.

In theory, there are alternatives like fread() and, if all else fails, fsockopen(). But if the provider is any good at what they do, those will be disabled too.

Yapmaya çalıştığınız tüm belirli bir url üzerinde bir isabet tetikleyebilir ve (kıvırmak kullanabilirsiniz çıktı okumak gerekmez) web barındırma sağlanan ise bu sunucu üzerinde etkin oldu.

Dokümantasyon here kıvırmak kullanarak bir url çağıran bir örnek verir.

Bütün bunlardan başarısız olursa, cURL her zaman var. Yüklü iyi bir şans var.