file_get_contents
(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
Açıklama
file_get_contents
( string $dosyaismi
, int $seçenekler
= 0
, resource $bağlam
= ?
, int $başlangıç
= -1
, int $uzunluk
= -1
) : string
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).
Değiştirgeler
-
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çin
FILE_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:
Olası seçenekler
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.
Dönen Değerler
Hata durumunda false
aksi takdirde dosyadan okunan veriyi döndürür.
Örnekler
Ö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);
?>
Notlar
Bilginize:
Bu işlev ikil dosyalarla çalışırken
dosya içeriğini değiştirmez.
İpucu
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 Desteklenen Protokoller ve Sarmalayıcılar
bölümüne bakınız.
Uyarı
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ı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.