stream_resolve_include_path în PHP

Stream-uri PHP 5.3.2+

Află calea completă a unui fișier căutându-l în directoarele din include_path, ca include.

Sintaxă
stream_resolve_include_path(string $filename): string|false

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.