PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links 
search for in the  
previousfileprobasenamenext
Last updated: Tue, 09 Jul 2002
view the printer friendly version or the printer friendly version with notes or change language to English | Brazilian Portuguese | Chinese | Czech | Dutch | Finnish | German | Hungarian | Italian | Japanese | Korean | Polish | Romanian | Russian | Spanish | Swedish | Turkish

XXX. Syst�me de fichiers

Table des mati�res
basename --  S�pare le nom du fichier et le nom du dossier.
chgrp -- Change le groupe possesseur du fichier.
chmod -- Change le mode du fichier.
chown -- Change le groupe propri�taire du fichier.
clearstatcache -- Efface le cache de stat()
copy -- Copie un fichier.
delete -- Effacer
dirname -- Renvoie le nom du dossier.
disk_free_space --  Renvoie l'espace disque disponible dans le r�pertoire.
disk_total_space -- Retourne la taille d'un dossier
diskfreespace -- Alias de disk_free_space()
fclose -- Ferme un fichier.
feof -- Teste la fin du fichier.
fflush --  Envoi tout le contenu g�n�r� dans un fichier
fgetc --  Renvoie le caract�re que pointe le pointeur du fichier.
fgetcsv --  Renvoie la ligne courante et cherche les champs CSV
fgets --  Renvoie la ligne courante sur laquelle se trouve le pointeur du fichier.
fgetss --  Renvoie la ligne courante sur laquelle se trouve le pointeur du fichier et �limine les balises HTML
file_exists -- V�rifie si un fichier existe.
file_get_contents -- Reads entire file into a string
file_get_wrapper_data -- Retrieves header/meta data from "wrapped" file pointers
file_register_wrapper -- Register a URL wrapper implemented as a PHP class
file --  Lit le fichier et renvoie le r�sultat dans un tableau.
fileatime --  Renvoie la date � laquelle le fichier a �t� acc�d� pour la derni�re fois.
filectime --  Renvoie l'heure � laquelle l'inode a �t� acc�d� pour la derni�re fois.
filegroup -- Lire le nom du groupe
fileinode -- Renvoie le num�ro d'inode du fichier.
filemtime --  Renvoie la date de derni�re modification du fichier.
fileowner -- Renvoie le nom du propri�taire du fichier.
fileperms --  Renvoie les permissions affect�es au fichier.
filesize -- Renvoie la taille du fichier.
filetype -- Retourne le type de fichier
flock -- Verrouille le fichier.
fopen -- Ouverture d'un fichier ou d'une URL.
fpassthru --  Affiche la partie du fichier situ�e apr�s le pointeur du fichier.
fputs -- Ecrit dans un fichier.
fread -- Lecture du fichier en mode binaire.
fscanf -- Analyse un fichier en fonction d'un format
fseek -- Modifie le pointeur de fichier.
fstat --  Lit les informations sur un fichier � partir d'un pointeur de fichier
ftell -- Renvoie la position du pointeur du fichier.
ftruncate -- Tronque un fichier.
fwrite -- Ecriture du fichier en mode binaire.
glob -- Find pathnames matching a pattern
is_dir -- Indique si le nom de fichier est un dossier.
is_executable -- Indique si le fichier est ex�cutable.
is_file --  Indique si le fichier est un v�ritable fichier.
is_link --  Indique si le fichier est un lien symbolique.
is_readable -- Indique un fichier est autoris� en lecture
is_uploaded_file --  Indique si le fichier a �t� t�l�charg� par HTTP POST
is_writable -- Indique si un fichier est autoris� en �criture.
is_writeable -- Indique si un fichier est autoris� en �criture.
link -- Cr�e un lien.
linkinfo -- Renvoie les informations � propos d'un lien.
lstat --  Renvoie les informations � propos d'un fichier ou d'un lien symbolique.
mkdir -- Cr�e un dossier.
move_uploaded_file -- D�place un fichier t�l�charg�.
parse_ini_file -- Traite un fichier de configuration
pathinfo -- Retourne des informations sur un chemin syst�me
pclose -- Ferme un processus de pointeur de fichier.
popen -- Cr�e un processus de pointeur de fichier.
readfile -- Affiche un fichier.
readlink --  Renvoie le nom du fichier vers lequel pointe un lien symbolique.
realpath -- Retourne le chemin canonique absolu.
rename -- Renomme un fichier.
rewind -- Replace le pointeur de fichier au d�but.
rmdir -- Efface un dossier.
set_file_buffer --  Fixe la bufferisation de fichier
stat -- Renvoie les informations � propos d'un fichier.
symlink -- Cr�e un lien symbolique.
tempnam -- Cr�e un fichier avec un nom unique.
tmpfile -- Cr�e un fichier temporaire
touch --  Affecte une nouvelle date de modification � un fichier.
umask -- Change le "umask" courant.
unlink -- Efface un fichier.
User Contributed Notes
Syst�me de fichiers
add a note about notes
[email protected]
27-Oct-2001 06:42

Il me semblait l'avoir deja poste mais apparemment non, ou alors je ne trouve plus ou, donc pour lister seulement certains fichiers dans un repertoire, voila une petite fonction utile:


function listFiles($dir , $type){
if (strlen($type) == 0) $type = "all";
$x = 0;
if(is_dir($dir))
{
$thisdir = dir($dir);
while($entry=$thisdir->read())
{if(($entry!='.')&&($entry!='..')) {
if ($type == "all") {$result[$x] = $entry; $x++; next;}
$isFile = is_file("$dir$entry"); $isDir = is_dir("$dir$entry");
if (($type == "files") && ($isFile)) {$result[$x] = $entry; $x++; next;}
if (($type == "dir") && ($isDir)) {$result[$x] = $entry; $x++; next;}

$temp = explode(".", $entry);

if (($type == "noext") && (strlen($temp[count($temp) - 1]) == 0))
{$result[$x] = $entry; $x++;next;}

if (($isFile) && (strtolower($type) == strtolower($temp[count($temp) - 1])))
{$result[$x] = $entry; $x++;next;}
} }
}
return $result;
}

donc on l'appelle en faisant
listFiles("/mon/rep/er/toire/", "gif")
so you'll have only .gif files

Si vous voulez tous les fichiers et repertoires, mettez "all" au lieu de "gif"; pour uniquement les repertoires, mettez "dir" au lieu de "gif"; pour avoir uniquement les fichier sans extension genre "README", tapez "noext" au lieu de "gif"; et finalement pour avoir tous les fichiers (mais pas les repertoires), tapez "files" au lieu de "gif".

Notez qu'un fichier genre monfichier.doc.gif sera reconnu en tant que .gif, pas en .doc.

[email protected]
15-Feb-2002 03:01

Barrowing from [email protected] directory example and infomation gathered through out the internet, here is a basic example that will list the file information for MP3 files, given the path of the directory you would want to display, not this will do all sub directories. will only display the information if it is valid, hope someone likes it ;>

<?PHP

function mp3($filename)
{
$FP = fopen($filename,"r");
$succes = fseek($FP,-128,SEEK_END);
$validtext=fread($FP,3);
if(0==strcmp("TAG",$validtext))
{
$Title=fread($FP,30);
$Artist=fread($FP,30);
$Album=fread($FP,30);
$Year=fread($FP,4);
$comments=fread($FP,30);
$Genre=fread($FP,1);
echo "This is the Information in a MP3 file Title
";
echo "Title: $Title
";
echo "Artist: $Artist
";
echo "Album: $Album
";
echo "Year: $Year
";
echo "Comments: $comments
";
echo "Genre: $Genre

";
}
}

function list_dir($dirname)
{
if($dirname[strlen($dirname)-1]!='\\')
$dirname.='\\';
static $result_array=array();
$handle=opendir($dirname);
while ($file = readdir($handle))
{
$workdirsucces=chdir($dirname);
if($file=='.'||$file=='..')
continue;
if(is_dir($dirname.$file))
list_dir($dirname.$file.'\\');
else
$result_array[]=$dirname.$file;

if(ereg (".mp3$", $file))
{
call_user_func('mp3',$file);
}

}
closedir($handle);
return $result_array;

}
call_user_func ('list_dir', "C:\\Documents and Settings\\user\\My Documents");
?>

and that ends the wackyness, hope you have fun
Cartman

[email protected]
15-Feb-2002 04:21

i've looked everywhere for guestbooks without advertisements on them and now that i know how to make them myself i'll give some code out to people who are like i was.
so, create three files gbook.txt gbooksign.php and gbook.php

**gbooksign.php
<html>
<body>
<form action="gbook.php?action=post" method="post">
<input type="text" name="name" value="Name">
<input type="text" name="comments" value="Comments">
<input type="submit" value="Sign">
</form>


<a href="gbook.php?action=view">View G-Book</a>
</body>
</html>

**gbook.php
<html>
<body>
<?php
if ($action=="post"){
$file=("gbook.txt");
$fp=fopen("$file", "a+");
$write=("Name:$name \n Comments:$comments \n");
fwrite($fp, "$write");
fclose($fp);
echo "<meta http-equiv='refresh' content='0; url=gbooksign.php'>";
}
else if ($action=="view"){
echo "<pre><font face=tahoma>";
include ("gbook.txt");
echo "</font></pre>";
}
else {
echo "<meta http-equiv='refresh' content='0; url=gbooksign.php'>";
}
?>
</body>
</html>

there you have it.... you dont need to do anything to gbook.txt, upload all three and have fun!

harry [at] ilo [dot] de
02-Mar-2002 01:06

In addition to the comment of [email protected]:

In ID3v1.1, the comment has only a length of 28 bytes. This is followed by a Zero-Byte and a second byte representing the tracknumber.

A list of of genres including the unofficial WinAmp-Extensions can be found here:
Part A.3. (near the end of the file).
The genre is represented by the ASCII-Value of the last ID3-Byte.

[email protected]
07-Mar-2002 05:55

Here is a useful function that checks for the existance of a file in PHP's include_path:

// Searches PHP's include_path variable for the existance of a file
// Returns the filename if it's found, otherwise FALSE.
// Only works on a *nix-based filesystem
// Check like: if (($file = file_exists_path('PEAR.php')) !== FALSE)
function file_exists_path($file) {
// Absolute path specified
if (substr($path,0,1)=='/')
return (file_exists($file))?realpath($file):FALSE;

$paths = explode(':',ini_get('include_path'));
foreach ($paths as $path) {
if (substr($path,-1)!='/') $path = "$path/";
if (file_exists("$path$file"))
return realpath("$path$file");
}
return FALSE;
}

Mike

[email protected]
19-Mar-2002 03:23

The guestbook above allows people to enter PHP code, and have it execute.

This is, therefore, a massive security hole.

A better way would be to replace the "include" with something like:

echo nl2br( htmlentities( join( "", file( "gbook.txt" ) ) ) );

I confess to not having tried that, it's just a suggestion, and may not work.

The main thing is that we read from the file and process the data for display, and never simply include it.

This also stops people from putting HTML in, which isn't a security risk, just an irritant.

[email protected]
20-Apr-2002 08:27

A note concerning the comment of [email protected] above:

This function does not work correctly, because there is missed the slash "/" twice in the code:

The following line / lines

$isFile = is_file("$dir$entry");
$isDir = is_dir("$dir$entry");

should look like this:

$isFile = is_file("$dir/$entry");
$isDir = is_dir("$dir/$entry");

The "/" applies to Unix or Linux, for Windows it should be "\\" (twice because the first backslash is a character indicating a special instruction - like "\n" for newline).

[email protected]
29-Jun-2002 05:12

Yes for the function, i forgot to mention it, but for the directory parameter, it has to be ended by "/" (or "\\" according to the system you're using).
[email protected]
18-Jul-2002 10:11

To create a blank file, use the touch() function.

Lee

shadowt[AT]uboot[DOT]com
29-Jul-2002 02:48

@lee:
touch() is one way, but if the file already exists, u will only modify its timestamp (at least afaik, i may b mistaken). so one way is to check whether the file exists (file_exists()) or simpler, in my opinion, try: $fd=fopen("foo.txt","w"); which creates an empty file or empties the file if it exists and afterwards you use a fclose($fd); now u have an empty file, no matter whether it already existed or not.....
cy.t

[email protected]
08-Aug-2002 03:31

[Editor's note: The simpler and faster equivalent to this set of functions is to use parse_ini_file(), and extract(), e.g. extract(parse_ini_file('myconf.cfg')).

See the appropriate manual pages for more information]

I wanted to use a configuration file for my PHP programs. But I wanted
the code to do so to be easily adaptable.
I came up with this code which uses variables to store variable names.
($$variable).

It reads a known configuration file a puts all values into variables.

We have a file like:

#######################################
# comments
mysql_password=mysql
host=localhost
# comments
port=3306
database=guestbook
user=mysql
password=mysql
#######################################

Now the PHP code to read these values from the file and attach them to the right variables.

<?
//put the variable names you want in an array.
//these must be in the same order as in the file
$var_names[0]="mysql_password";
$var_names[1]="host";
$var_names[2]="port";
$var_names[3]="database";
$var_names[4]="table";
$var_names[5]="user";
$var_names[6]="password";

//Open the configuration file for reading.
$fp=fopen("file.conf", "r", 1);

/* reset the array, so we can go through it.
start reading the conf. file line by line.
If a line starts with '#' or is empty, ignore it.
If it's not, get the first variable name,
and introduce a variable with the name we got out of the array,
and give it a value of the line we read. We'll format it later on.
now proceed with the next variable name.

Doing it this way means variables in the file have to be in the same
order as the ones in your array.
*/

reset($var_names);
while (! feof($fp)) {
$line=fgets($fp, 4096);
if (($line!='') && ($line[0] !='#')) {
$temp=current($var_names);
$$temp=$line;
next($var_names);
}
}

//close the file
fclose($fp);

/* Now each variable looks like "variable = value", for instance
echo "$port"; would show: port = 3086
just the line in your conf. file
So lets format the variable and strip everything but the value.
*/

foreach ($var_names as $variable){
$pos=strpos($$variable, "$variable=");
if (($pos === false) || ($pos!=0)){
echo "Error in guestbook.conf line";
echo $$variable;
}
else
$$variable= trim(substr($$variable, strlen($variable)+1, strlen($$variable) - (strlen($variable)+1)));
}
?>

I realise some enhancements could be made, but in my opinion the really interesting part is
about using variables to store variable names and then using them with $$variable.

I hope it'll be of use to somebody. :)

add a note about notes
previousfileprobasenamenext
Last updated: Tue, 09 Jul 2002
show source | credits | stats | mirror sites
Copyright © 2001, 2002 The PHP Group
All rights reserved.
This mirror generously provided by:
Last updated: Sat Aug 31 06:19:44 2002 CEST