Je voudrais faire un script qui doit faire une action dans certains fichiers.
Mais je ne sait pas lui indiquer tous les fichiers.
Code : Tout sélectionner
chmod ( " medias/ et_tous_les_fichiers_et_dossiers_qui_en_découlent", 0777);
Code : Tout sélectionner
chmod ( " medias/ et_tous_les_fichiers_et_dossiers_qui_en_découlent", 0777);
function maFonctionRecursive($dossier) {
$liste = scandir($dossier); // parcours du dossier
foreach ($liste as $element) { // pour chaque élément
if ($element == '.' || $element == '..') // on passe les répertoires spéciaux
continue;
if (is_dir($dossier . '/' . $element)) { // s'il s'agit d'un dossier
maFonctionRecursive($dossier . '/' . $element); // on appel la fonction récursive pour qu'elle parcours ce dossier
}
else { // s'il s'agit d'un fichier
chmod ( $dossier . '/' . $element , 0777); // on le chmodoit (du verbe chmoder, 3ème groupe)
}
}
}
Et pour lancer le tout il suffit d'un premier appel :
maFonctionRecursive("chemin_du_dossier_medias");
RecursiveDirectoryIterator est la pour caIl te faut faire une fonction récursive qui va parcourir ton dossier medias (avec scandir ou opendir + readdir par exemple).
Pour chaque élément, s'il s'agit d'un fichier tu exécutes le chmod, s'il s'agit d'un dossier, tu fais à nouveau appel à ta fonction pour parcourir ce nouveau dossier
Oui en même temps l'avantage de la réponse de Ryle c'est que cela apprend à faire une fonction récursive avec du code assez simple (donc plus à la portée du forum php débutant) et surtout que son code est documenté.RecursiveDirectoryIterator est la pour caIl te faut faire une fonction récursive qui va parcourir ton dossier medias (avec scandir ou opendir + readdir par exemple).
Pour chaque élément, s'il s'agit d'un fichier tu exécutes le chmod, s'il s'agit d'un dossier, tu fais à nouveau appel à ta fonction pour parcourir ce nouveau dossier
$parcours = new RecursiveDirectoryIterator("dossier_a_parcourir");
foreach (new RecursiveIteratorIterator($parcours, RecursiveIteratorIterator::SELF_FIRST) as $filename)
{
chmod ($filename , 0777);
}
et si seulement sur les fichiers : $parcours = new RecursiveDirectoryIterator("dossier_a_parcourir");
foreach (new RecursiveIteratorIterator($parcours) as $filename)
{
chmod ($filename , 0777);
}
Oui enfin heureusement qu'il y avait quelques exemples, parce que sinon pour trouver que SELF_FIRST permettait de lister les dossiers... Donc l'inconvénient avec ces classes c'est que tant ce ne sera pas mieux documenté, excepté si on trouve un exemple correspondant à ce qu'on veut faire, on y passes des plombe ...
c'est plus au niveau informatif, donc si ca intéressé on clique sur le lien, les exemple étant dedans je n'aurai fais que recopié exemple,Maintenant ton lien est intéressant mais si tu pouvais prendre quelques minutes pour donner un exemple quand tu indiques ces nouvelles classes php5, ça donnerait plus d'intérêt à ton message et plus de motivation pour ceux qui te lise![]()
Code : Tout sélectionner
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
non il mais il est peu être mal formé, essaye de le renommer pour tester, sinon montre nous le contenusi si il y a un fichier htacess.
je dois le supprimer ???
merci
Code : Tout sélectionner
#a mettre ds le httpd.conf d'apache
#SetEnv SESSION_USE_TRANS_SID 0 // OVH
RewriteEngine on
#options all -followsymlinks // 1&1
#RewriteBase / // 1&1
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(..)/?$ index.php?lg=$1 [L,QSA]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(..)/([^/]*)/?$ index.php?lg=$1&keyRubrique=$2 [L,QSA]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(..)/([^/]*)/([^.]*)\.html?$ index.php?lg=$1&keyRubrique=$2&keyMessage=$3 [L,QSA]
ErrorDocument 401 /templates/error/HTTP_UNAUTHORIZED.php
ErrorDocument 403 /templates/error/HTTP_FORBIDDEN.php
ErrorDocument 404 /templates/error/HTTP_NOT_FOUND.php
ErrorDocument 500 /templates/error/HTTP_INTERNAL_SERVER_ERROR.php
Code : Tout sélectionner
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 229
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 230
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 231
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 232
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 229
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 230
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 231
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 232
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 229
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 230
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 231
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 232
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 229
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 230
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 231
Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\library\lib.handler.php on line 232
et cela continue encore sur 20 lignes
Code : Tout sélectionner
ini_set('error_reporting','E_ALL & ~E_NOTICE'); // désactivation des warnings mais activations des erreurs