file

(PHP 4, PHP 5, PHP 7)

fileDosya içeriğinin tamamını bir diziye okur

Açıklama

file ( string $dosyaismi [, int $seçenekler = 0 [, resource $bağlam ]] ) : array

Dosyanın tamamını bir dizi içinde döndürür.

Bilginize:

Dosya içeğini bir dizge olarak döndürmek için file_get_contents() işlevini kullanabilirsiniz.

Değiştirgeler

dosyaismi

Dosya yolu.

İ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.

seçenekler

İsteğe bağlı bu değiştirgede şu sabitlerden bir veya daha fazlasını belirtebilirsiniz:

FILE_USE_INCLUDE_PATH
Dosya include_path yönergesinde belirtilen yollarda aranır.
FILE_IGNORE_NEW_LINES
Her dizi elemanının sonuna satırsonu karakteri eklenmez.
FILE_SKIP_EMPTY_LINES
Boş satırlar atlanır.
FILE_TEXT
İçerik UTF-8 kodlu döndürülür. Özel bir bağlam oluşturarark farklı bir kodlama belirtebilirsiniz. Bu 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 ile oluşturulmuş bir bağlam özkaynağı.

Bilginize: Bağlamsal destek PHP 5.0.0 ile eklenmiştir. Bağlamlar hakkında bilgi edinmek için Akım İşlevleri belgesine bakınız.

Dönen Değerler

Dosyayı bir dizi olarak döndürür. Dizinin her elemanı dosyanın bir satırına karşılıktır ve satırsonu karakterleri ayrılmaz. Başarısızlık durumunda işlev FALSE döndürür.

Bilginize:

FILE_IGNORE_NEW_LINES sabiti kullanılmadığı sürece dizinin her elemanı bir satırsonu karakteri içerecektir. Bu satırsonu karakterlerinden kurtulmak isterseniz rtrim() işlevini kullanabilirsiniz.

Bilginize: Eğer PHP'nin Macintosh bilgisayarlarda çalışırken veya bu bilgisayarlarda oluşturulmuş dosyalarla çalışırken satır sonlarını tanımamaması gibi bir sorunla karşılaşırsanız, auto_detect_line_endings çalışma anı seçeneğini etkin kılarak bu sorunu çözebilirsiniz.

Sürüm Bilgisi

Sürüm: Açıklama
6.0.0 FILE_TEXT ve FILE_BINARY seçenekleri desteği eklendi.

Bilginize:

İleriye uyumluluk adına, bu sabitler PHP 5.2.7'den beri mevcuttur.

5.0.0 bağlam değiştirgesi eklendi.
5.0.0 PHP 5.0.0 öncesinde seçenekler değiştirgesi sadece include_path yönergesinde belirtilen yolları kapsardı ve daima 1 ile etkinleştirilirdi.
4.3.0 file() işlevi veriyi ikil kipte okur oldu.

Örnekler

Örnek 1 - file() örneği

<?php
// Dosyayı bir diziye aktaralım. Bu örnekte HTTP üzerinden
// bir URL sayesinde HTML içeriği okuyacağız.
$lines file('http://www.example.com/');

// Diziyi döngüye sokarak HTML kaynağını satır
// numaralarıyla birlikte gösterelim.
foreach ($lines as $line_num => $line) {
    echo 
"Satır #<b>{$line_num}</b>: " htmlspecialchars($line) . "<br />\n";
}

// Diğer bir örnek olarak bir HTML sayfayı bir dizgeye aktaracağız.
// Bunun için file_get_contents() işlevine de bakınız.
$html implode(''file('http://www.example.com/'));

// PHP 5'ten itibaren isteğe bağlı seçenekler
// değiştirgesini kullanabiliriz
$trimmed file('somefile.txt'FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES);
?>

Notlar

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.

Ayrıca Bakınız