Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: FOPEN() vs. INCLUDE()
Forum PHP.pl > Forum > Przedszkole
MP1
Czy funkcje razem połączone: fopen(), flock(), fread() działają wolniej od include()? Jeśli tak, to o ile wolniej?
Zależy mi na szybkim ładowaniu serwisu.
rogrog
fopen i include to dwie różne żeczy

fopen otwieraja plik, a dalsze funkcje wykonują z nim różne operacje

natomiast include i require włączają plik - tzn. otwierają i wykonują zawarte w nim instrukcje, w uproszczeniu mówiąc jak gdyby w miejsce instrukcji include wklejono cały włączany plik (dokładniej opisane w manualu)

a teraz odpowiedź: to, która funkcja/instrukcja jest najlepsza i najszybsza zależy od tego co chcesz wykonać

1. jeżeli chcesz włączyć plik i tylko wyświetlić na ekranie, a nie zależy ci na przetwarzaniu php to możesz użyć readfile" title="Zobacz w manualu PHP" target="_manual, które powinno być szybsze od fopen, flock, fread i jeszcze do tego echo, choćby z tego powodu że jest to wywołanie tylko jednej funkcji, która dalej działa już na poziomie silnika php

2. jeżeli chcesz przetwarzać php (ale chyba nie o to ci chodzi) - konstrukcje include/require, które na pewno będą szybsze od kombinacji fopen, flock, fread, eval
MP1
Teraz napiszę więcej. Chcę zrobić skrypt, który będzie dołączał plik template'u...

Przypisanie INCLUDE do zmiennej jest niemożliwe - i w tym jest problem.

Jeśli potem będę chciał zamienić funkcją str_replace() tekst {zmienna} na $zmienna, to będzie to wtedy niemożliwe.
Liko
To użyj funkcji: file_get_contents" title="Zobacz w manualu PHP" target="_manual
silent
Można to zrobić tak:
  1. <?php
  2. include('plik');
  3. $tekst=ob_get_contents();
  4. ?>

Jeśli masz już gdzieś ob_start() to nie przejmuj się - nic się nie pomiesza.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.