PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

basename> <Filesystem
Last updated: Fri, 22 Aug 2008

view this page in

Funkcje Systemu plików

Patrz także

Związane z tym działem funkcje, znajdziesz w rozdziale Katalog i Wykonywanie programów.

Listę wraz z opisem różnych wrapperów URL, które mogą zostać użyte jako zdalne pliki, znajdziesz tu List of Supported Protocols/Wrappers.

Spis treści

  • basename — Zwraca nazwę pliku, będącego składową ścieżki
  • chgrp — Zmienia grupę pliku
  • chmod — Zmienia prawa dostępu do pliku
  • chown — Zmienia właściciela pliku
  • clearstatcache — Czyści bufor statusu pliku
  • copy — Kopiuje plik
  • delete — Zobacz unlink lub unset
  • dirname — Zwraca nazwę katalogu, będącego składową ścieżki
  • disk_free_space — Zwraca ilość wolnego miejsca w katalogu
  • disk_total_space — Zwraca całkowity rozmiar katalogu
  • diskfreespace — Alias dla disk_free_space
  • fclose — Zamyka otwarty wskaźnik pliku
  • feof — Sprawdza czy wskaźnik pliku jest na końcu pliku (EOF)
  • fflush — Przekierowuje wyjście do pliku
  • fgetc — Pobiera znak ze wskaźnika pliku
  • fgetcsv — Pobiera linię ze wskanika pliku i przetwarza na pola CSV
  • fgets — Pobiera linię ze wskaźnika pliku
  • fgetss — Pobiera linię ze wskaźnika pliku i usuwa tagi HTML
  • file_exists — Sprawdza czy plik lub katalog istnieje
  • file_get_contents — Reads entire file into a string
  • file_put_contents — Write a string to a file
  • file — Czyta całą zawartość pliku do tablicy
  • fileatime — Pobiera ostatni czas dostępu do pliku
  • filectime — Pobiera i-węzłowy czas zmiany pliku
  • filegroup — Pobiera grupę pliku
  • fileinode — Pobiera i-węzeł pliku
  • filemtime — Pobiera czas ostatniej modyfikacji pliku
  • fileowner — Pobiera właściciela pliku
  • fileperms — Pobiera prawa dostępu pliku
  • filesize — Pobiera rozmiar pliku
  • filetype — Pobiera typ pliku
  • flock — Portable advisory file locking
  • fnmatch — Match filename against a pattern
  • fopen — Otwiera plik lub URL
  • fpassthru — Output all remaining data on a file pointer
  • fputcsv — Format line as CSV and write to file pointer
  • fputs — Alias dla fwrite
  • fread — Odczyt pliku binarnie bezpieczy
  • fscanf — Przetwarza dane z pliku według formatu
  • fseek — Seeks on a file pointer
  • fstat — Pobiera informacje o pliku używając otwartego wskaźnika pliku
  • ftell — Mówi o pozycji odczyt/zapis wskaźnika pliku
  • ftruncate — Przycina plik do podanej długości
  • fwrite — Zapis pliku binarnie bezpieczny
  • glob — Find pathnames matching a pattern
  • is_dir — Mówi czy nazwa_pliku jest katalogiem
  • is_executable — Mówi czy plik jest wykonywalny
  • is_file — Mówi czy nazwa_pliku jest zwykłym plikiem
  • is_link — Mówi czy nazwa_pliku jest dowiązaniem symbolicznym
  • is_readable — Tells whether the filename is readable
  • is_uploaded_file — Mówi czy plik został przysłany przez HTTP POST.
  • is_writable — Tells whether the filename is writable
  • is_writeable — Alias dla is_writable
  • lchgrp — Changes group ownership of symlink
  • lchown — Changes user ownership of symlink
  • link — Tworzy dowiązanie twarde
  • linkinfo — Pobiera informacje o linku
  • lstat — Podaje informacje o pliku lub dowiązaniu symbolicznym
  • mkdir — Tworzy katalog
  • move_uploaded_file — Przenieś uploadowany plik do innej lokalizacji
  • parse_ini_file — Parse a configuration file
  • pathinfo — Zwraca informacje o ścieżce do pliku
  • pclose — Zamyka wskaźnik pliku do procesu
  • popen — Otwiera wskaźnik pliku do procesu
  • readfile — Wyświetla plik
  • readlink — Zwraca cel linku symbolicznego
  • realpath — Returns canonicalized absolute pathname
  • rename — Renames a file or directory
  • rewind — Rewind the position of a file pointer
  • rmdir — Usuwanie katalogów
  • set_file_buffer — Alias dla stream_set_write_buffer
  • stat — Gives information about a file
  • symlink — Tworzy dowiązanie symboliczne
  • tempnam — Create file with unique file name
  • tmpfile — Tworzy plik tymczasowy
  • touch — Ustawia czas modyfikacji pliku
  • umask — Changes the current umask
  • unlink — Kasowanie pliku


basename> <Filesystem
Last updated: Fri, 22 Aug 2008
 
add a note add a note User Contributed Notes
Funkcje Systemu plików
Christian
17-Mar-2007 06:24
I just learned that, to specify file names in a portable manner, you DON'T need 'DIRECTORY_SEPARATOR' - just use '/'. This really surprised and shocked me, as until now I typed about a zillion times 'DIRECTORY_SEPARATOR' to stay platform independent - unnecessary. Don't make the same mistake.
tunnelareaten at gmail dot com
25-Feb-2005 05:27
I made this function to search and/or display files by extension or for a string occurance in the filename. Any comments or enhancements are welcome offcourse. I'll update this function soon.

usage: list_files([string], [string], [int 1 | 0], [int 1 | 0]);

search for extension: list_files([string], [string], [0], [int 1 | 0]);
returns array: $myArray = list_files([string], [string], [0], [0]);
echo result: list_files([string], [string], [0], [1]);

search for string occurance: list_files([string], [string], [1], [int 1 | 0]);
returns array: $myArray = list_files([string], [string], [1], [0]);
echo result: list_files([string], [string], [1], [1]);

<?php

function list_files($directory, $stringSearch, $searchHandler, $outputHandler) {
 
$errorHandler = false;
 
$result = array();
 if (!
$directoryHandler = @opendir ($directory)) {
  echo (
"<pre>\nerror: directory \"$directory\" doesn't exist!\n</pre>\n");
 return
$errorHandler = true;
 }
 if (
$searchHandler === 0) {
  while (
false !== ($fileName = @readdir ($directoryHandler))) {
   if(@
substr ($fileName, - @strlen ($stringSearch)) === $stringSearch) {
    @
array_push ($result, $fileName);
   }
  }
 }
 if (
$searchHandler === 1) {
  while(
false !== ($fileName = @readdir ($directoryHandler))) {
   if(@
substr_count ($fileName, $stringSearch) > 0) {
    @
array_push ($result, $fileName);
   }
  }
 }
 if ((
$errorHandler === true) &&  (@count ($result) === 0)) {
  echo (
"<pre>\nerror: no filetype \"$fileExtension\" found!\n</pre>\n");
 }
 else {
 
sort ($result);
  if (
$outputHandler === 0) {
   return
$result;
  }
  if (
$outputHandler === 1) {
   echo (
"<pre>\n");
  
print_r ($result);
   echo (
"</pre>\n");
  }
 }
}

?>
http://iubito.free.fr
30-Dec-2003 01:39
Here is a function I wrote to get the relative path between 2 files or directory.

We suppose that paths are wrotten in Unix format (/ instead of windows \\)

<?php
/**
 * Return the relative path between two paths / Retourne le chemin relatif entre 2 chemins
 *
 * If $path2 is empty, get the current directory (getcwd).
 * @return string
 */
function relativePath($path1, $path2='')
{
    if (
$path2 == '') {
       
$path2 = $path1;
       
$path1 = getcwd();
    }

   
//Remove starting, ending, and double / in paths
   
$path1 = trim($path1,'/');
   
$path2 = trim($path2,'/');
    while (
substr_count($path1, '//')) $path1 = str_replace('//', '/', $path1);
    while (
substr_count($path2, '//')) $path2 = str_replace('//', '/', $path2);

   
//create arrays
   
$arr1 = explode('/', $path1);
    if (
$arr1 == array('')) $arr1 = array();
   
$arr2 = explode('/', $path2);
    if (
$arr2 == array('')) $arr2 = array();
   
$size1 = count($arr1);
   
$size2 = count($arr2);

   
//now the hard part :-p
   
$path='';
    for(
$i=0; $i<min($size1,$size2); $i++)
    {
        if (
$arr1[$i] == $arr2[$i]) continue;
        else
$path = '../'.$path.$arr2[$i].'/';
    }
    if (
$size1 > $size2)
        for (
$i = $size2; $i < $size1; $i++)
           
$path = '../'.$path;
    else if (
$size2 > $size1)
        for (
$i = $size1; $i < $size2; $i++)
           
$path .= $arr2[$i].'/';

    return
$path;
}
?>

Enjoy ! :-)
Gregor Mosheh
23-Aug-2003 02:23
This function searches a directory and returns an array of all files whose filename matches the specified regular expression. It's similar in concept to the Unix find program.

 function findfile($location='',$fileregex='') {
    if (!$location or !is_dir($location) or !$fileregex) {
       return false;
    }
 
    $matchedfiles = array();
 
    $all = opendir($location);
    while ($file = readdir($all)) {
       if (is_dir($location.'/'.$file) and $file <> ".." and $file <> ".") {
          $subdir_matches = findfile($location.'/'.$file,$fileregex);
          $matchedfiles = array_merge($matchedfiles,$subdir_matches);
          unset($file);
       }
       elseif (!is_dir($location.'/'.$file)) {
          if (preg_match($fileregex,$file)) {
             array_push($matchedfiles,$location.'/'.$file);
          }
       }
    }
    closedir($all);
    unset($all);
    return $matchedfiles;
 }

$htmlfiles = findfile('/some/dir','/\.(htm|html)$/');
Gregor Mosheh
17-Jul-2003 07:25
I needed a function to find disk usage for a directory and its subs, so here it is. It's kinda like the Unix du program, except it returns the usage in bytes, not blocks.

function du($location) {
   if (!$location or !is_dir($location)) {
      return 0;
   }

   $total = 0;

   $all = opendir($location);
   while ($file = readdir($all)) {
      if (is_dir($location.'/'.$file) and $file <> ".." and $file <> ".") {
         $total += du($location.'/'.$file);
         unset($file);
      }
      elseif (!is_dir($location.'/'.$file)) {
         $stats = stat($location.'/'.$file);
         $total += $stats['size'];
         unset($file);
      }
   }
   closedir($all);
   unset($all);
   return $total;
}

print du('/some/directory');
l_domenech at yahoo dot ca
03-Jul-2003 07:25
In the code samples of the user-contributed notes, you'll find functions that sometimes need a slash at the end of a folder path and sometimes don't.

Here's a little function to append a slash at the end of a path if there isn't one already.

function append_slash_if_none($string)
    {
    if (ereg ("/$", $string))
        {
        return $string;
        }
    else
        {
        return ereg_replace("$", "/", $string);
        }
    }

(Replace with a backslash if you're on Windows...)
mitra at mitra dot biz
16-May-2003 07:10
Pollard@php.net contributed this in response to a question on setting these variables ...
This option *IS* settable within your PHP scripts.
Example:

<?php
  ini_set
('auto_detect_line_endings', true);
 
$contents = file('unknowntype.txt');

 
ini_set('auto_detect_line_endings', false);
 
$content2 = file('unixfile.txt');
?>

Note, with PHP 4.3 anytime Mac files are read using fgets or file you'll need to auto_detect_line_endings since \n is otherwise assumed.  However, with PHP 5.0, stream_get_line() will allow you to specify what line ending character to read up to.

\\ Read a line from a MAC file
stream_get_line($fp, 4096, "\r");

\\ Read a line from a UNIX file
stream_get_line($fp, 4096, "\n");

\\ Read a line from a DOS file
stream_get_line($fp, 4096, "\r\n");

\\ Read a line up to any filesystem line ending
ini_set('auto_detect_line_endings', true); fgets($fp);

\\ You can also make up your own line ending characters:
\\ Read up to the first instance of ":"
stream_get_line($fp, 4096, ":");
regis at webstuff dot com dot br
03-Apr-2003 05:49
Here is a useful function if you're having trouble writing raw bytes into a file.

It receives an integer and returns an array containing the ASCII values of the bytes on each index of the array.

function int2bytes($number){
  $byte = $number;
  $i=0;
  do{
    $dec_tmp = $byte;
   
    $byte = bcdiv($byte,256,0);
    $resto = $dec_tmp - (256 * $byte);
    $return[] = $resto;
  } while($byte >= 256);
  if($byte) $return[] = $byte;
  return array_reverse($return);
}

Example:

$arr = int2bytes(75832);

$arr will contain the following values:
Array
(
    [0] => 1
    [1] => 40
    [2] => 56
)

Now, to write this data to the file, just use a fputs() with chr(), just like this:

fputs($fp,chr($arr[0]).chr($arr[1]).chr($arr[2]))

-- Regis
jdhurn at uberidx dot com
08-Mar-2003 04:18
This is a function I use to determine if a file contains Binary information. I use this for my search engine so that it doesn't try to index files like .zip or .mp3 or any other file that doesn't contain readable information. It makes use of the Character Type Extension if it's loaded, if it's not then it uses Regular Expressions.

function is_binary($link)
{
     $tmpStr  = '';
     @$fp     = fopen($link, 'rb');
     @$tmpStr = fread($fp, 256);
     @fclose($fp);

     if($tmpStr != '')
     {
          $tmpStr = str_replace(chr(10), '', $tmpStr);
          $tmpStr = str_replace(chr(13), '', $tmpStr);

          $tmpInt = 0;

           for($i =0; $i < strlen($tmpStr); $i++)
          {
                if( extension_loaded('ctype') )
               {
                    if( !ctype_print($tmpStr[$i]) )
                         $tmpInt++;
               }
               else
               {
                   if( !eregi("[[:print:]]+", $tmpStr[$i]) )
                         $tmpInt++;
               }
           }

           if($tmpInt > 5)
                return(0);
            else
                return(1);
     }
     else
           return(0);
}

basename> <Filesystem
Last updated: Fri, 22 Aug 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites