Forum und email

file

(PHP 4, PHP 5)

file — Egy teljes fájlt tömbbe olvas

Leírás

array file ( string $filename [, int $use_include_path [, resource $context ]] )

Ugyanaz, mint a file_get_contents() függvény, kivéve azt, hogy a file() függvény a fájlt tömbben adja vissza. Minden eleme a tömbnek megegyezik a fájl soraival, egy új sort még mindig hozzákapcsolva. Hiba esetén a file() függvény FALSE-szal tér vissza.

Használhatod az opcinális use_include_path paramétert és beállíthatod az értékét "1"-re, ha szeretnéd, hogy a PHP az include_path-ban is keresse a fájlt.

<?php
// Fájl kinyerése tömbbe. Ebben a példában HTTP-n
// keresztül nyerjük ki az URL forrás segítségével a HTML tartalmat.
$lines file('https://www.example.com/');

// Járjuk körbe a tömböt, írassuk ki a HTML forrást HTML forrásként sorszámozással
foreach ($lines as $line_num => $line) {
  echo 
"Line #<b>{$line_num}</b> : " htmlspecialchars($line) . "<br />\n";
}

// Másik példa, weblap kinyerése karakterláncba. Lásd még: file_get_contents().
$html implode(''file('https://www.example.com/'));
?>

Tip

URL-t is megadhatsz az állomány név paraméter helyén ha a fopen wrappers szolgáltatás be van kapcsolva. Bővebb információk az fopen() leírásánál olvashatóak arról, milyen módon adhatod meg a fájlneveket, valamint érdemes megtekinteni a List of Supported Protocols/Wrappers oldalt a támogatott URL típusok listájának megtekintése gyanánt.

Note: Ez eredmény tömbben az összes sor tartalmazza a sorvégződést, tehát szükséged van rtrim() függvényre, ha nem szeretnéd, hogy a sorvégződés jelen legyen.

Note: Ha problémád akadna PHP-ben Machintosh gépen létrehozott szöveges fileokban a sorvégek olvasásával, valószínűleg be kell kapcsolnod az auto_detect_line_endings beállítást.

Note: A PHP 4.3.0-től használhatod a file_get_contents() függvényt, hogy a fájl tartalmát karakterlánckénet kapd vissza.
PHP 4.3.0-tól a file() függvény binary safe.

Note: A context támogatása a PHP 5.0.0 változattól felfele érhető el. A conext-ek leírását itt találod: Streams.

Warning

SSL titkosított kapcsolat esetén a Microsoft IIS webszerver az SSL protokol helytelen implementálása folytán a kapcsolatot a close_notify jelzése nélkül zárja. A PHP ezt a következő hibaüzenettel honorálja, amikor az adattovábbítás végére ér: "SSL: Fatal Protocol Error". A probléma tüneti kezelésére a error_reporting beállítást lehet lejjebb venni. APHP 4.3.7-es és későbbi változatai képesek felismerni a hibásan működő IIS szerver-szoftvert amikor a https:// adatfolyam-burkolót alkalmazod és elnyeli a fenti hibaüzeneteket. Ha az fsockopen()-t használod ssl:// csatornán keresztül, a hibaüzenetet magad tudod észlelni és elnyomni.

Lásd még: readfile(), fopen(), fsockopen(), popen(), file_get_contents(), include(), és stream_context_create()