Ce face stream_resolve_include_path
Când scrii include "ajutor.php", PHP caută fișierul în directoarele din setarea include_path. stream_resolve_include_path face aceeași căutare fără să includă fișierul și îți dă calea completă găsită.
Este utilă când vrei să verifici dinainte că un fișier poate fi inclus sau să afli din ce director ar fi încărcat.
Parametri
| Parametru | Descriere |
|---|---|
$filename |
Numele sau calea relativă a fișierului căutat. |
Ce returnează
Calea absolută a fișierului găsit sau false dacă nu este în niciun director din include_path.
Exemple
Exemplul 1: Fișier găsit în directorul adăugat
<?php
mkdir("biblioteci");
file_put_contents("biblioteci/ajutor.php", "<?php\n");
set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . "/biblioteci");
$cale = stream_resolve_include_path("ajutor.php");
echo basename(dirname($cale)) . "/" . basename($cale) . "\n";
var_dump(stream_resolve_include_path("lipsa.php"));
Rezultat
biblioteci/ajutor.php
bool(false)
Greșeli frecvente
- Crezi că funcția caută în directorul scriptului. Caută în
include_path, unde.înseamnă directorul curent de lucru, care poate fi altul. Pentru fișierele proprii,__DIR__ . "/fisier.php"este mai sigur.
Comenzi înrudite
require / include: Încarcă și rulează codul dintr-un alt fișier PHP.set_include_path: Setează lista de directoare în care include și require caută fișierele date cu cale relativă.realpath: Transformă o cale relativă într-o cale absolută, fără ../ și fără scurtături.