la moulinette pour corriger les noms de fichier de spip_documents

This commit is contained in:
clem 2020-02-15 16:12:02 +01:00
parent 8606e19871
commit aead9c282b
3 changed files with 43 additions and 0 deletions

View file

@ -1,2 +1,12 @@
# nettoyer_documents
## Squelette "moulinette" pour nettoyer les noms de fichiers des documents SPIP
Supprime les espace et tous les caractères spéciaux dans les noms de fichiers de la table spip_documents (et modifie les fichiers correspondants)
## Mode d'emploi:
- Installer le fichier **mouline_images.html** dans le répertoire **/squelettes** ou dans un plugin
- Installer le fichier **mes_fonctions.php** dans le répertoire **/squelettes** ou copier son contenu dans un fichier de fonctions d'un plugin
- appeller la page: **...?page=mouline_images**

25
mes_fonctions.php Normal file
View file

@ -0,0 +1,25 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/* rectifier les noms de fichiers des documents ayant des espaces et autres caractères à la noix:
remplacer par un _ dans le nom du fichier et corriger l'enregistrement en BDD */
function supprime_espace($fic) {
if (!file_exists($fic)) {
return 'fichier '.$fic.' absent';
}
$fic_ok = preg_replace('/[^A-Za-z0-9_\-\.\/]/', '_', $fic);
echo 'renomme '.$fic.' en '.$fic_ok;
rename($fic, $fic_ok);
$fic_sansIMG = str_replace('IMG/', '', $fic);
$fic_ok_sansIMG = str_replace('IMG/', '', $fic_ok);
//echo '<br>fic: '.$fic_sansIMG.' / fic_ok: '.$fic_ok_sansIMG.'<br>';
sql_updateq('spip_documents', array('fichier' => $fic_ok_sansIMG), 'fichier = "'.$fic_sansIMG.'"');
}

8
mouline_images.html Normal file
View file

@ -0,0 +1,8 @@
[(#REM)
squelette/moulinette pour nettoyer les noms de fichiers des documents SPIP
]
<h1>moulinette pour nettoyer les noms de fichiers des documents SPIP</h1>
<BOUCLE_img(DOCUMENTS){fichier == [^A-Za-z0-9_\.\/-]}{tout}>
fichier: #FICHIER => [(#FICHIER|supprime_espace)]<br>
</BOUCLE_img>