Podręcznik PHP
Poprzedni |  | Następny

# file

(PHP 3, PHP 4, PHP 5)

file -- Czyta całą zawartość pliku do tablicy

## Opis

array file ( string nazwa_pliku [, int użyj_include_path [, resource kontekst]] )

Działa identycznie jak readfile(), tylko że file() zwraca plik w tablicy. Każdy element tablicy odpowiada linii w pliku. Elementy tablicy zawierają znak nowej linii. W przypadku błędu, file() zwraca `FALSE`.

Możesz użyć opcjonalnego parametru use_include_path i ustawić go na "1", jeśli chcesz szukać pliku także w include_path.

`<?php
// Pobierz plik do tablicy. W tym przykładzie poprzez HTTP pobierzemy
// źródło HTML z URL
$lines = file('http://www.example.com/');
// Za pomocą pętli przeglądamy naszą tablicę i pokazujemy źródło strony w postaci
// źródła HTML oraz numery linii.
foreach ($lines as $line_num => $line) {
echo "Linia #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
// Kolejny przyklad pozwala pobrać stronę i umieścić ją w łańcuchu znaków Zobacz także file_get_contents().
$html = implode ('', file ('http://www.example.com/'));
?>`

> Podpowiedź: Jeśli włączona jest dyrektywa konfiguracyjna fopen wrappers, możliwe jest podanie jako nazwy pliku adresu URL. Zobacz opis funkcji fopen() aby dowiedzieć się jak przekazać nazwę pliku, oraz fopen wrappers aby uzyskać listę obsługiwanych protokołów.

> Notatka: Każda linia w wynikowej tabeli będzie zawierać znak(i) końca linii, jeśli nie chcesz ich musisz uzyć rtrim().

> Notatka: W przypadku problemów z rozpoznawaniem znaków końca linii przez PHP przy czytaniu plików stworzonych lub znajdujących się na komputerach Macintosh, może pomóc włączenie dyrektywy konfiguracji auto_detect_line_endings.

> Notatka: W PHP 4.3.0 możesz użyć file_get_contents() aby zwrócić zawartość pliku do łańcucha.

> W PHP 4.3.0 file() stał się binarnie bezpieczny.

> Notatka: Wsparcie dla kontekstów zostało dodane w PHP 5.0.0.

Ostrzeżenie

Łącząc się przez SSL, serwer Microsoft IIS pogwałca reguły protokołu przez zamknięcie połączenia bez wysłania znacznika close_notify. PHP zgłosi to jako "SSL: Fatal Protocol Error" po przesłaniu całości danych. Aby obejść ten błąd, wystarczy obniżyć poziom raportowania błędów (error_reporting) aby nie były wyświetlane ostrzeżenia. PHP w wersji 4.3.7 i nowsze wykrywa obecność zepsutego serwera IIS przy otwieraniu strumienia przez wrapper https:// i wyłącza wyświetlanie tych ostrzeżeń. Używając funkcji fsockopen() do otwarcia gniazda ssl:// należy samemu zatroszczyć się o wyłączenie ostrzeżeń.

Patrz także: readfile(), fopen(), fsockopen(), popen(), file_get_contents() i include().

Poprzedni | Spis treści | Następny
file_put_contents | Początek rozdziału | fileatime