PHP Conference China 2020

file_get_contents

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

file_get_contentsDosya 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

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

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'NULLNULL2014);
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 Bilgisi

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.

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.

Ayrıca Bakınız

add a note add a note

User Contributed Notes 1 note

up
54
Bart Friederichs
8 years ago
file_get_contents can do a POST, create a context for that first:

<?php

$opts
= array('http' =>
  array(
   
'method'  => 'POST',
   
'header'  => "Content-Type: text/xml\r\n".
     
"Authorization: Basic ".base64_encode("$https_user:$https_password")."\r\n",
   
'content' => $body,
   
'timeout' => 60
 
)
);
                       
$context  = stream_context_create($opts);
$url = 'https://'.$https_server;
$result = file_get_contents($url, false, $context, -1, 40000);

?>
To Top