(PHP 4 >= 4.3.0, PHP 5)
file_get_contents — Dosya içeriğinin tamamını bir dizge olarak döndürür
$dosyaismi
[, int $seçenekler
= 0
[, resource $bağlam
[, int $başlangıç
= -1
[, int $uzunluk
= -1
]]]] )
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.
Bilginize:
The default value of
uzunluk
değiştirgesinin öntanımlı değeri aslında -1 değildir; daha ziyade dahili bir PHP değeri olup, akımın tamamının dosya sonuna kadar kopyalanacağı anlamına gelir. Bu öntanımlı değeri belirtmenin tek yolu değiştirge olarak belirtmemektir (belirtilmesinin isteğe bağlı oluşuna dikkat edin).
dosyaismi
İçeriği okunacak dosyanın ismi.
seçenekler
Bilginize:
PHP 6'dan önceki sürümlerde bu değiştirge
include_path_kullan
olarak adlandırılır ve bool türünde bir değer alırdı. PHP 5'ten beri, aramanın include path yönergesinde belirtilen yollarda da yapılacağını belirtmek içinFILE_USE_INCLUDE_PATH
sabitini kullanmanız gerekmektedir.
seçenekler
değiştirgesine, bazı sınırlamalarla
ve ikil VEYA (|)
işleci ile birleştirilmiş olarak aşağıdaki seçenekler
belirtilebilir:
Seçenek | Açıklama |
---|---|
FILE_USE_INCLUDE_PATH
|
Dosya include_path yönergesinde belirtilen yollarda aranır. |
FILE_TEXT
|
PHP 6'dan beri okunan verinin kodlaması
UTF-8'dir. Özel bir bağlam oluşturarak veya öntanımlı kodlamayı
stream_default_encoding() ile değiştirerek
farklı bir kodlama belirtebilirsiniz. Su seçenek
FILE_BINARY ile birlikte kullanılamaz.
|
FILE_BINARY
|
İçerik ikil veri olarak okunur. Bu öntanımlıdır ve
FILE_TEXT ile birlikte kullanılamaz.
|
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 değiştirgeye NULL
atayabilirsiniz.
başlangıç
Okumaya başlanacak konum.
uzunluk
Okunacak verinin azami uzunluğu. Öntanımlı olarak dosya sonuna kadar okunur.
Hata durumunda FALSE
aksi takdirde dosyadan okunan veriyi döndürür.
Ö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
// <= PHP 5
$file = file_get_contents('./people.txt', true);
// > PHP 5
$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', NULL, 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);
?>
Sürüm: | Açıklama |
---|---|
6.0.0 |
include_path_kullan değiştirgesi
seçenekler değiştirgesi ile değiştirildi.
|
5.1.0 |
başlangıç ve
uzunluk değiştirgeleri eklendi.
|
5.0.0 | Bağlam desteği eklendi. |
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 belirtebilirsiniz. Dosya isminin nasıl belirtilebileceği hakkında bilgi edinmek için fopen() işlevine bakınız. Sarmalayıcıların neler yapabildiği, kullanım bilgileri ve bunlar tarafından kullanılan öntanımlı değişkenler hakkında bilgi edinmek için ise Supported Protocols and Wrappers bölümüne bakınız.
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'nin 4.3.7 ve sonraki sürümleri, akımı https:// şemasını kullanarak açarsanız 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.