(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
file_get_contents — Dosya içeriğinin tamamını bir dizge olarak döndürür
$dosyaismi
,$use_include_path
= false
,$bağlam
= null
,$başlangıç
= 0,$uzunluk
= null
Belirtilen dosyanın başlangıç
konumundan başlayan uzunluk
baytını bir dizge olarak döndürmesi dışında file() işlevi gibidir. İşlem başarılı olmazsa false
döner.
file_get_contents() işlevi bir dosyanın içeriğini bir dizgeye okumak için tercih edilen bir işlevdir. Başarımı arttırmak için eğer işletim sistemi tarafından destekleniyorsa bellek eşlem tekniklerini kullanılacaktır.
Bilginize:
Boşluklar gibi özel karakterler içeren bir URI'yi açmaya çalışıyorsanız URI'yi urlencode() ile kodlamalısınız.
dosyaismi
İçeriği okunacak dosyanın ismi.
use_include_path
Bilginize:
Aramanın include path yönergesinde belirtilen yollarda da yapılacağını belirtmek için
FILE_USE_INCLUDE_PATH
sabiti kullanılabilir. Ancak, katı kodlama etkinseFILE_USE_INCLUDE_PATH
sabiti int türünde olduğundan bu mümkün değildir. Yerinetrue
kullanın.
bağlam
stream_context_create() işlevi tarafından oluşturulmuş geçerli bir bağlam özkaynağı. Özel bir bağlam kullanmaya ihtiyacınız yoksa bu bağımsız değişkene null
atayabilirsiniz.
başlangıç
Akım üzerinde okumaya başlanacak konum. Negatif değerler dosyanın sonundan itibaren sayılır.
Uzak dosyalarda arama (başlangıç
) desteklenmemektedir. Yerel olmayan dosyalarda küçük başlangıçlarla çalışmak mümkünse de bu işlem tamponlanmış akım üzerine yapılacağından sonuçları öngörülemez.
uzunluk
Okunacak verinin azami uzunluğu. Öntanımlı olarak dosya sonuna kadar okunur. Bu bağımsız değişken süzgeçler tarafından işlenen akıma ugulanır.
Hata durumunda false
aksi takdirde dosyadan okunan veriyi döndürür.
Bu işlev mantıksal false
değeriyle dönebileceği gibi false
olarak değerlendirilebilecek mantıksal olmayan bir değerle de dönebilir. Bu konuda daha fazla bilgi Mantıksal Değerler bölümünde bulunabilir. Bu işlevden dönen değeri sınamak için ===
işleci kullanılabilir.
dosyaismi
bulunamazsa, uzunluk
sıfırdan küçükse, başlangıç
akım üzerinde aranabilir değilse, E_WARNING
seviyesinde bir hata üretilir.
file_get_contents() bir dizin için çağrılırsa, Windows'ta ve PHP 7.4'ten beri diğer işletim sistemlerinde E_WARNING
seviyesinde bir hata üretilir.
Sürüm: | Açıklama |
---|---|
8.0.0 | uzunluk artık null olabiliyor. |
7.1.0 | başlangıç artık negatif değer kabul ediyor. |
Örnek 1 - Site başsayfasının kaynak kodunun çıktılanması
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>
Örnek 2 - include_path
içinde arama
<?php
// Katı kodlama etkinse, yani declare(strict_types=1); ise
$file = file_get_contents('./people.txt', true);
// değilse
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>
Örnek 3 - Bir dosyanın belli bir bölümünün okunması
<?php
// 21. karakterden itibaren 14 karakter okuyalım
$section = file_get_contents('./people.txt', FALSE, NULL, 20, 14);
var_dump($section);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
string(14) "lle Bjori Ro"
Örnek 4 - Akım bağlamı kullanımı
<?php
// Bir akım oluşturalım
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// Yukarıda atadığımız HTTP başlıklarını kullanarak dosyayı açalım
$file = file_get_contents('http://www.example.com/', false, $context);
?>
Bilginize: Bu işlev ikil dosyalarla çalışırken dosya içeriğini değiştirmez.
fopen sarmalayıcıları etkin kılınmışsa bu işlevde dosya ismi olarak bir URL belirtilebilir. Dosya isminin nasıl belirtilebileceği hakkında bilgi edinmek için fopen() işlevine bakılabilir. Sarmalayıcıların neler yapabildiği, kullanım bilgileri ve bunlar tarafından kullanılan öntanımlı değişkenler hakkında bilgi Desteklenen Protokoller ve Sarmalayıcılar bölümünde bulanabilir.
Microsoft IIS, SSL kullanırken bir close_notify
göndermeden bağlantıyı kapatarak protokolle çelişir. Verinin sonuna ulaştığınız zaman PHP bunu "SSL: Fatal Protocol Error" (SSL: "Ölümcül Protokol Hatası") olarak raporlar. Bu sorunu bertaraf etmek için error_reporting değerini uyarıları içermeyecek bir seviyeye indirmek gerekir. PHP, akımı https://
şeması kullanılarak açılırsa hatalı IIS sunucu yazılımını saptayıp uyarıları engelleyebilir. Bir ssl://
soketi oluşturmak için fsockopen() kullanılacaksa uyarıları saptayıp engellemekten geliştirici sorumludur.