本文整理汇总了PHP中FileSystem::lister_contenu_dossier方法的典型用法代码示例。如果您正苦于以下问题:PHP FileSystem::lister_contenu_dossier方法的具体用法?PHP FileSystem::lister_contenu_dossier怎么用?PHP FileSystem::lister_contenu_dossier使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileSystem
的用法示例。
在下文中一共展示了FileSystem::lister_contenu_dossier方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: DB_creer_remplir_tables_structure
/**
* Créer les tables de la base d'une structure et les remplir
*
* @param void
* @return void
*/
public static function DB_creer_remplir_tables_structure()
{
$tab_files = FileSystem::lister_contenu_dossier(CHEMIN_DOSSIER_SQL_STRUCTURE);
foreach($tab_files as $file)
{
$extension = pathinfo($file,PATHINFO_EXTENSION);
if($extension=='sql')
{
$requetes = file_get_contents(CHEMIN_DOSSIER_SQL_STRUCTURE.$file);
DB::query(SACOCHE_STRUCTURE_BD_NAME , $requetes ); // Attention, sur certains LCS ça bloque au dela de 40 instructions MySQL (mais un INSERT multiple avec des milliers de lignes ne pose pas de pb).
/*
La classe PDO a un bug. Si on envoie plusieurs requêtes d'un coup ça passe, mais si on recommence juste après alors on récolte : "Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute."
La seule issue est de fermer la connexion après chaque requête multiple en utilisant exceptionnellement la méthode ajouté par SebR suite à mon signalement : DB::close(nom_de_la_connexion);
*/
DB::close(SACOCHE_STRUCTURE_BD_NAME);
}
}
}
示例2: restaurer_tables_base_etablissement
/**
* restaurer_tables_base_etablissement
* Restaurer des fichiers de svg et mettre la base à jour si besoin.
* Pour une restauration individuelle, scindé en plusieurs étapes pour éviter un dépassement du max_execution_time sur de grosses bases.
* Par contre pour une restauration par un webmestre d'un ensemble de structures, c'était trop compliqué à découper, on fait tout d'un coup.
*
* @param string $dossier_temp
* @param int $etape (0 si tout d'un coup)
* @return string
*/
function restaurer_tables_base_etablissement($dossier_temp, $etape)
{
// Pour chaque fichier...
$tab_fichier = FileSystem::lister_contenu_dossier($dossier_temp);
natsort($tab_fichier);
// Si plusieurs fichiers correspondent à une table, il faut que la requête de création soit lancée avant les requêtes d'insertion
$tab_fichier = array_values($tab_fichier);
// Pour réindexer dans l'ordre et à partir de 0
$nb_fichiers = count($tab_fichier);
if ($etape) {
$nb_par_etape = 10;
$i_min = ($etape - 1) * $nb_par_etape;
$i_max = $etape * $nb_par_etape;
$i_stop = min($i_max, $nb_fichiers);
} else {
$i_min = 0;
$i_stop = $nb_fichiers;
}
for ($i = $i_min; $i < $i_stop; $i++) {
$fichier_nom = $tab_fichier[$i];
// ... lancer les requêtes
$requetes = file_get_contents($dossier_temp . $fichier_nom);
DB_STRUCTURE_COMMUN::DB_executer_requetes_MySQL($requetes);
// Attention, sur certains LCS ça bloque au dela de 40 instructions MySQL (mais un INSERT multiple avec des milliers de lignes ne pose pas de pb).
/*
La classe PDO a un bug. Si on envoie plusieurs requêtes d'un coup ça passe, mais si on recommence juste après alors on récolte : "Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute."
La seule issue est de fermer la connexion après chaque requête multiple en utilisant exceptionnellement la méthode ajouté par SebR suite à mon signalement : DB::close(nom_de_la_connexion);
*/
DB::close(SACOCHE_STRUCTURE_BD_NAME);
}
if ($i_stop < $nb_fichiers) {
// Ce n'est pas la dernière étape
return 'Restauration de la base en cours ; étape n°' . sprintf("%02u", $etape) . ' réalisée';
} else {
// Toutes les étapes sont terminées ; tester si la base nécessite une mise à jour, et si oui alors la lancer
$version_base_restauree = version_base_fichier_svg($dossier_temp);
if ($version_base_restauree < VERSION_BASE_STRUCTURE) {
DB_STRUCTURE_MAJ_BASE::DB_maj_base($version_base_restauree);
// Log de l'action
SACocheLog::ajouter('Mise à jour automatique de la base ' . SACOCHE_STRUCTURE_BD_NAME . '.');
return 'Restauration de la base terminée et base mise à jour';
}
return 'Restauration de la base terminée';
}
}
示例3: array
// Pas de traduction car pas de choix de langue pour ce profil.
?>
<?php
// Activation du débogueur
$lignes_debug = '';
$tab_debug = array('PHP' => 'afficher toutes les erreurs PHP <span class="now">déconseillé en production</span>', 'PHPCAS' => 'enregistrer les dialogues avec le serveur CAS <span class="now">le fichier peut vite gonfler → décocher une fois les tests terminés</span>', 'SQL' => 'console FirePHP → résultats des requêtes SQL <span class="now">double le besoin en mémoire → risqué pour les générations de bilans</span>', 'SESSION' => 'console FirePHP → valeurs de $_SESSION <span class="now">diminue la sécurité en rendant accessible certaines informations</span>', 'POST' => 'console FirePHP → valeurs de $_POST', 'GET' => 'console FirePHP → valeurs de $_GET', 'FILES' => 'console FirePHP → valeurs de $_FILES', 'COOKIE' => 'console FirePHP → valeurs de $_COOKIE <span class="now">diminue la sécurité en rendant accessible certaines informations</span>', 'SERVER' => 'console FirePHP → valeurs de $_SERVER <span class="now">diminue la sécurité en rendant accessible certaines informations</span>', 'CONST' => 'console FirePHP → valeurs des constantes PHP <span class="now">diminue la sécurité en rendant accessible certaines informations</span>');
foreach ($tab_debug as $debug_mode => $debug_texte) {
$checked = constant('DEBUG_' . $debug_mode) ? ' checked' : '';
$lignes_debug .= '<label class="tab" for="f_debug_' . $debug_mode . '">' . $debug_mode . '</label><label for="f_debug_' . $debug_mode . '"><input type="checkbox" id="f_debug_' . $debug_mode . '" name="f_debug_' . $debug_mode . '" value="1"' . $checked . ' /> ' . $debug_texte . '</label><br />' . NL;
}
// Fichiers de logs phpCAS
$tab_fichiers = array();
$alerte_dossier_invalide = is_dir(PHPCAS_CHEMIN_LOGS) ? '' : '<p class="danger">Le dossier renseigné n\'existe plus ; veuillez le modifier !</p>';
if (!$alerte_dossier_invalide) {
$tab_files = FileSystem::lister_contenu_dossier(PHPCAS_CHEMIN_LOGS);
foreach ($tab_files as $file) {
if (substr($file, 0, 9) == 'debugcas_') {
if (HEBERGEUR_INSTALLATION == 'mono-structure') {
$etabl = 'pour l\'établissement';
$id_etabl = 0;
} else {
$tab = explode('_', $file);
$id_etabl = $tab[1];
$etabl = 'pour la base n°' . $id_etabl;
}
$tab_fichiers[$id_etabl] = '<li id="' . html(substr($file, 0, -4)) . '">Logs présents ' . $etabl . ', le fichier pesant ' . afficher_fichier_taille(filesize(PHPCAS_CHEMIN_LOGS . $file)) . '<q class="voir" title="Récupérer ce fichier."></q><q class="supprimer" title="Supprimer ce fichier."></q></li>' . NL;
}
ksort($tab_fichiers);
}
}
示例4: exit
if ($action == 'importer_zip') {
if (!count($_SESSION['tab_info'])) {
exit('Erreur : données du fichier CSV perdues !');
}
$result = FileSystem::recuperer_upload(CHEMIN_DOSSIER_IMPORT, $fichier_zip_nom, array('zip'), NULL, NULL, NULL);
if ($result !== TRUE) {
exit('Erreur : ' . $result);
}
// Dezipper dans le dossier dump (pas dans un sous-dossier "temporaire" sinon ce dossier n'est pas vidé si l'opération n'arrive pas à son terme).
$code_erreur = FileSystem::unzip(CHEMIN_DOSSIER_IMPORT . $fichier_zip_nom, CHEMIN_DOSSIER_DUMP, TRUE);
if ($code_erreur) {
exit('<li><label class="alerte">Erreur : votre archive ZIP n\'a pas pu être ouverte (' . FileSystem::$tab_zip_error[$code_erreur] . ') !</label></li>');
}
FileSystem::supprimer_fichier(CHEMIN_DOSSIER_IMPORT . $fichier_zip_nom);
// Vérifier le contenu : noms des fichiers
$tab_fichier = FileSystem::lister_contenu_dossier(CHEMIN_DOSSIER_DUMP);
$nb_fichiers_introuvables = 0;
foreach ($_SESSION['tab_info'] as $key => $tab_infos) {
if (!in_array($tab_infos['fichier_nom'], $tab_fichier)) {
$nb_fichiers_introuvables++;
}
}
if ($nb_fichiers_introuvables) {
$s = $nb_fichiers_introuvables > 1 ? 's' : '';
exit('Erreur : ' . $nb_fichiers_introuvables . ' fichier' . $s . ' référencé' . $s . ' dans le CSV non trouvé' . $s . ' dans le ZIP !');
}
// La dernière étape consiste seulement à faire le ménage.
$max = count($_SESSION['tab_info']) + 1;
exit(']¤[' . $max);
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
示例5: exit
exit('<label class="erreur">Application fermée : '.html($motif).'</label>');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Vérification des dossiers additionnels par établissement
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if($action=='verif_dir_etabl')
{
// Récupérer les ids des structures
$tab_bases = array_keys( DB_WEBMESTRE_WEBMESTRE::DB_lister_structures_id() );
// Récupérer les dossiers additionnels par établissement
$tab_dossiers = array();
foreach(FileSystem::$tab_dossier_tmp_structure as $dossier_key => $dossier_dir)
{
$tab_dossiers[$dossier_dir] = array_fill_keys ( FileSystem::lister_contenu_dossier($dossier_dir) , TRUE );
unset($tab_dossiers[$dossier_dir]['index.htm']);
ksort($tab_dossiers[$dossier_dir],SORT_NATURAL);
}
// Pour l'affichage du retour
$thead = '<tr><td colspan="2">Vérification des dossiers additionnels par établissement - '.date('d/m/Y H:i:s').'</td></tr>';
$tbody_ok = '';
$tbody_pb = '';
// On parcourt les dossiers devant exister : ok ou création.
foreach($tab_bases as $base_id)
{
foreach(FileSystem::$tab_dossier_tmp_structure as $dossier_key => $dossier_dir)
{
if(isset($tab_dossiers[$dossier_dir][$base_id]))
{
$tbody_ok .= '<tr class="v"><td>Dossier présent</td><td>'.$dossier_key.$base_id.'</td></tr>';
示例6: array
$tab_bad = array( '[sconet_id]' , '[sconet_num]' , '[reference]' , '[nom]' , '[prenom]' , '[login]' , '[ent_id]' );
$champs = 'user_id, user_id_ent, user_sconet_id, user_sconet_elenoet, user_reference, user_nom, user_prenom, user_login' ;
$DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' /*profil_type*/ , 1 /*statut*/ , 'all' /*groupe_type*/ , 0 /*groupe_id*/ , 'alpha' /*eleves_ordre*/ , $champs );
if(!empty($DB_TAB))
{
foreach($DB_TAB as $DB_ROW)
{
$tab_bon = array( $DB_ROW['user_sconet_id'] , $DB_ROW['user_sconet_elenoet'] , Clean::fichier($DB_ROW['user_reference']) , Clean::fichier($DB_ROW['user_nom']) , Clean::fichier($DB_ROW['user_prenom']) , Clean::fichier($DB_ROW['user_login']) , Clean::fichier($DB_ROW['user_id_ent']) );
$tab_fichier_masque[$DB_ROW['user_id']] = Clean::fichier(str_replace( $tab_bad , $tab_bon , $masque ));
}
}
// Pour l'affichage du retour
$thead = '<tr><td colspan="2">Import d\'un fichier de photos zippées le '.date('d/m/Y H:i:s').'</td></tr>';
$tbody = '';
// Traiter les fichier un à un
$tab_fichier = FileSystem::lister_contenu_dossier($dossier_temp);
foreach($tab_fichier as $fichier_nom)
{
// echo'*'.$fichier_nom;
$tab_user_id = array_keys( $tab_fichier_masque , $fichier_nom );
$nb_user_find = count($tab_user_id);
if($nb_user_find == 0)
{
$tbody .= '<tr><td class="r">'.html($fichier_nom).'</td><td>Pas de correspondance trouvée.</td></tr>';
}
elseif($nb_user_find > 1)
{
$tbody .= '<tr><td class="r">'.html($fichier_nom).'</td><td>Plusieurs correspondances trouvées.</td></tr>';
}
else
{
示例7: DB_creer_remplir_tables_webmestre
/**
* Créer les tables de la base du webmestre et les remplir (mode multi-structures)
*
* @param void
* @return void
*/
public static function DB_creer_remplir_tables_webmestre()
{
$tab_files = FileSystem::lister_contenu_dossier(CHEMIN_DOSSIER_SQL_WEBMESTRE);
foreach($tab_files as $file)
{
$extension = pathinfo($file,PATHINFO_EXTENSION);
if($extension=='sql')
{
$requetes = file_get_contents(CHEMIN_DOSSIER_SQL_WEBMESTRE.$file);
DB::query(SACOCHE_WEBMESTRE_BD_NAME , $requetes ); // Attention, sur certains LCS ça bloque au dela de 40 instructions MySQL (mais un INSERT multiple avec des milliers de lignes ne pose pas de pb).
/*
La classe PDO a un bug. Si on envoie plusieurs requêtes d'un coup ça passe, mais si on recommence juste après alors on récolte : "Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute."
La seule issue est de fermer la connexion après chaque requête multiple en utilisant exceptionnellement la méthode ajouté par SebR suite à mon signalement : DB::close(nom_de_la_connexion);
*/
DB::close(SACOCHE_WEBMESTRE_BD_NAME);
}
}
// Il est arrivé que la fonction DB_modifier_parametres() retourne une erreur disant que la table n'existe pas.
// Comme si les requêtes précédentes étaient en cache, et pas encore toutes passées (parcequ'au final, quand on va voir la base, toutes les tables sont bien là).
// Est-ce que c'est possible au vu du fonctionnement de la classe de connexion ? Et, bien sûr, y a-t-il quelque chose à faire pour éviter ce problème ?
// En attendant une réponse de SebR, j'ai mis ce sleep(1)... sans trop savoir si cela pouvait aider...
@sleep(1);
// Renseigner la version de la base du webmestre
DB_WEBMESTRE_WEBMESTRE::DB_modifier_parametre('version_base',VERSION_BASE_WEBMESTRE);
}
示例8: array
}
// États d'acquisitions calculés : couleurs de fond, équivalents textes, légendes
$tab_acquis = array('NA' => 'r', 'VA' => 'o', 'A' => 'v');
$tab_defaut = array('NA' => '#ff9999', 'VA' => '#ffdd33', 'A' => '#99ff99');
$acquis_box = '';
foreach ($tab_acquis as $acquis => $class) {
$acquis_box .= '<div class="colorpicker ' . $class . '">';
$acquis_box .= '<p><input type="text" class="hc" size="2" maxlength="3" id="acquis_texte_' . $acquis . '" name="acquis_texte_' . $acquis . '" value="' . html($_SESSION['ACQUIS_TEXTE'][$acquis]) . '" /><br /><input type="text" class="hc" size="25" maxlength="40" id="acquis_legende_' . $acquis . '" name="acquis_legende_' . $acquis . '" value="' . html($_SESSION['ACQUIS_LEGENDE'][$acquis]) . '" /></p>';
$acquis_box .= '<div><button type="button" name="color_' . $acquis . '" value="' . $_SESSION['BACKGROUND_' . $acquis] . '" class="colorer">Couleur de l\'établissement.</button></div>';
$acquis_box .= '<div><button type="button" name="color_' . $acquis . '" value="' . $tab_defaut[$acquis] . '" class="colorer">Couleur par défaut.</button></div>';
$acquis_box .= '<p><input type="text" class="stretch" size="8" id="acquis_color_' . $acquis . '" name="acquis_color_' . $acquis . '" value="' . $_SESSION['BACKGROUND_' . $acquis] . '" style="background-color:' . $_SESSION['BACKGROUND_' . $acquis] . '" /><br /></p>';
$acquis_box .= '</div>';
}
// Listing des symboles colorés
$chemin_dossier = CHEMIN_DOSSIER_IMG . 'note' . DS . 'choix' . DS . 'h' . DS;
$tab_fichiers = FileSystem::lister_contenu_dossier($chemin_dossier);
$tab_liste = array();
foreach ($tab_fichiers as $fichier_nom) {
list($fichier_partie_1, $fichier_partie_2) = explode('_', $fichier_nom, 2);
$image_nom = substr($fichier_nom, 0, -4);
if (!isset($tab_liste[$fichier_partie_1])) {
$tab_liste[$fichier_partie_1] = '';
}
$tab_liste[$fichier_partie_1] .= '<div class="p"><a href="#" id="a_' . $image_nom . '"><img alt="' . $image_nom . '" src="./_img/note/choix/h/' . $fichier_nom . '" /></a></div>';
}
?>
<div><span class="manuel"><a class="pop_up" href="<?php
echo SERVEUR_DOCUMENTAIRE;
?>
?fichier=support_administrateur__gestion_codes_couleurs">DOC : Notation : codes, couleurs, légendes</a></span></div>
示例9: zipper_fichiers
/**
* zipper_fichiers
* Zipper les fichiers de svg
*
* @param string $dossier_fichiers_a_zipper
* @param string $dossier_zip_final
* @param string $fichier_zip_nom
* @return void
*/
public static function zipper_fichiers($dossier_fichiers_a_zipper,$dossier_zip_final,$fichier_zip_nom)
{
$zip = new ZipArchive();
$ds = (substr($dossier_zip_final,-1)==DS) ? '' : DS ;
$zip->open($dossier_zip_final.$ds.$fichier_zip_nom, ZIPARCHIVE::CREATE);
$tab_fichier = FileSystem::lister_contenu_dossier($dossier_fichiers_a_zipper);
$ds = (substr($dossier_fichiers_a_zipper,-1)==DS) ? '' : DS ;
foreach($tab_fichier as $fichier_sql_nom)
{
$zip->addFile($dossier_fichiers_a_zipper.$ds.$fichier_sql_nom,$fichier_sql_nom);
}
$zip->close();
}
示例10: foreach
$options_logo = '';
foreach ($tab_files as $file) {
$extension = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if (in_array($extension, $tab_ext_images)) {
$selected = $file == HEBERGEUR_LOGO ? ' selected' : '';
$options_logo .= '<option value="' . html($file) . '"' . $selected . '>' . html($file) . '</option>';
}
}
$options_logo = $options_logo ? '<option value=""> </option>' . $options_logo : '<option value="" disabled>Aucun fichier image trouvé !</option>';
exit($options_logo);
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Contenu du ul avec la liste des logos disponibles
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'listing_logos') {
$tab_files = FileSystem::lister_contenu_dossier(CHEMIN_DOSSIER_LOGO);
$li_logos = '';
foreach ($tab_files as $file) {
$extension = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if (in_array($extension, $tab_ext_images)) {
$li_logos .= '<li>' . html($file) . ' <img alt="' . html($file) . '" src="' . URL_DIR_LOGO . html($file) . '" /><q class="supprimer" title="Supprimer cette image du serveur (aucune confirmation ne sera demandée)."></q></li>';
}
}
$li_logos = $li_logos ? $li_logos : '<li>Aucun fichier image trouvé !</li>';
exit($li_logos);
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Uploader un logo
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'upload_logo') {
$result = FileSystem::recuperer_upload(CHEMIN_DOSSIER_LOGO, NULL, $tab_ext_images, NULL, 100, NULL);