Question

I would like to know how to get the absolute file path of the file i have found using glob() function. I am able to find a desired file using

foreach (glob("access.php") as $filename) {
    echo "$filename absolutepath is:  ";
}

not sure what function gets the full path of the file searched. Tried to google but can't find anything sensible.

Thanks

Slight update : I have noticed that glob() function only searches the directory that the script is run from - and that is not good to me. I need a function that is equivalent to unix find / -name "somename"

Any alternative ? or am i missing something with the glob() ??

Was it helpful?

Solution

If you have to look also for files in subdirectories, you could use something like the following:

foreach (glob("{access.php,{*/,*/*/,*/*/*/}access.php}", GLOB_BRACE) as $filename) {
    echo "$filename absolutepath is:  ".realpath($filename);
}

OTHER TIPS

You can use realpath to get file absolute path. More info: http://www.php.net/manual/en/function.realpath.php

I thinkt you need realpath(), as described here: http://www.php.net/manual/en/function.realpath.php

foreach (glob("access.php") as $filename) {
    echo "$filename absolutepath is:  " . realpath($filename);
}

The directory in which the glob function searches is available through the getcwd function.

To search any directory, given its path, one may use the following code snippet:

$dirToList       = '/home/username/documents';
$patternToSearch = '*.odt'; // e.g. search for LibreOffice OpenDocument files
$foundFiles      = FALSE;
$olddir          = getcwd();
if (chdir($dirToList)) {
    $foundFiles = glob($patternToSearch);
    chdir($olddir); // switch back to the dir the code was running in before
    if ($foundFiles) {
        foreach ($foundFiles as $filename) {
            echo nl2br(htmlentities(
                 'found file: '.$dirToList.DIRECTORY_SEPARATOR.$filename."\n"
                  , ENT_COMPAT, 'UTF-8'));
         }
     }
     // else echo 'no found files';
 }
 // else echo 'chdir error';

To finally satiesfy your wish to do a search like

find / -name "somename"

you may put that code snippet in a function and call it while iterating through the directory tree of interest using PHP's RecursiveDirectoryIterator class.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top