Autor Zpráva
phpnevyznalec
Profil *
Zdravím, potřeboval bych načíst všechny soubory z jednoho adresáře pomocí <?php include("něco.php");, ale nechce se mi to vypisovat po jednom, soubory jsou očíslované (1.php, 2.php) atd., nejlepší by bylo, kdyby se to načetlo pozpátku to znamená, že, když tam bude 20 souborů, tak se to načte 20.php, 19.php - 1.php. Soubory se budou měnit, přidávat atd. takže nechci do toho kodu napsat, že tam je 20 souborů. Nějaké rady? Php není zrovna můj obor.
Jozin
Profil
Zdravím, předně bych chtěl podotknout, že to asi není dobrý nápad takto načítat soubory, ale nevím, co se tím snažíš vyřešit. Pokud ty soubory obsahují třeba třídy, pak bych raděj doporučil autoloader a dobře pojmenovat soubory, vcelku by mě zajímalo co to tedy je za soubory, když je nutné jich načíst třeba i 20.

Každopádně řešením je opendir a readdir, projde všechny soubory a adresáře ve vybraném adresáři, filtrací a uložením položek do pole získáš seznam souborů, které chceš načíst, pole revertuješ, projdeš ním a na každou položku voláš funkci include. Kdyby bylo pořadí načítání nepodstatné, můžeš si ušetřit ukládání do pole a druhý průchod a rovnou načítat.

Reference k pročtení:
- opendir
- readdir
- array_reverse
Alphard
Profil
scandir() umí výsledek i seřadit. Jen zřejmě bude nutné v názvech zleva doplnit 0 na stejnou délku.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0