本文整理汇总了PHP中spip_unlink函数的典型用法代码示例。如果您正苦于以下问题:PHP spip_unlink函数的具体用法?PHP spip_unlink怎么用?PHP spip_unlink使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了spip_unlink函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: maj_v016_dist
function maj_v016_dist($version_installee, $version_cible)
{
if (upgrade_vers(1.6, $version_installee, $version_cible)) {
#8/08/07 plus d'indexation dans le core
# include_spip('inc/indexation');
# purger_index();
# creer_liste_indexation();
maj_version(1.6);
}
if (upgrade_vers(1.601, $version_installee, $version_cible)) {
spip_query("ALTER TABLE spip_forum ADD INDEX id_syndic (id_syndic)");
maj_version(1.601);
}
if (upgrade_vers(1.603, $version_installee, $version_cible)) {
// supprimer les fichiers deplaces
spip_unlink('inc_meta_cache.php');
spip_unlink('inc_meta_cache.php3');
spip_unlink('data/engines-list.ini');
maj_version(1.603);
}
if (upgrade_vers(1.604, $version_installee, $version_cible)) {
spip_query("ALTER TABLE spip_auteurs ADD lang VARCHAR(10) DEFAULT '' NOT NULL");
$u = spip_query("SELECT * FROM spip_auteurs WHERE prefs LIKE '%spip_lang%'");
while ($row = sql_fetch($u)) {
$prefs = unserialize($row['prefs']);
$l = $prefs['spip_lang'];
unset($prefs['spip_lang']);
spip_query("UPDATE spip_auteurs SET lang=" . _q($l) . ", prefs='" . addslashes(serialize($prefs)) . "' WHERE id_auteur=" . $row['id_auteur']);
}
$u = spip_query("SELECT lang FROM spip_auteurs");
maj_version(1.604, $u);
}
}
示例2: admin_repair_plat
function admin_repair_plat(){
spip_log("verification des documents joints");
$out = "";
$repertoire = array();
include_spip('inc/getdocument');
$res = sql_select('*','spip_documents',"fichier REGEXP CONCAT('^',extension,'[^/\]') AND distant='non'");
while ($row=sql_fetch($res)){
$ext = $row['extension'];
if (!$ext) {
spip_log("document sans extension: " . $row['id_document']);
continue;
}
if (!isset($repertoire[$ext])){
if (@file_exists($plat = _DIR_IMG. $ext .".plat"))
spip_unlink($plat);
$repertoire[$ext] = creer_repertoire_documents($ext);
if (preg_match(',_$,',$repertoire[$ext]))
$repertoire[$ext] = false;
}
if ($d=$repertoire[$ext]){
$d = substr($d,strlen(_DIR_IMG));
$src = $row['fichier'];
$dest = $d . substr($src,strlen($d));
if (deplacer_fichier_upload(_DIR_IMG . $src, _DIR_IMG . $dest)) {
sql_updateq('spip_documents',array('fichier'=>$dest),'id_document='.intval($row['id_document']));
spip_unlink(_DIR_IMG . $src);
$out .= "$src => $dest<br />";
}
}
}
return $out;
}
示例3: action_copier_local_post
/**
* http://code.spip.net/@action_copier_local_post
*
* @param $id_document
* @return bool|mixed|string
*/
function action_copier_local_post($id_document)
{
// Il faut la source du document pour le copier
$row = sql_fetsel("mode,fichier, descriptif, credits", "spip_documents", "id_document={$id_document}");
$source = $row['fichier'];
include_spip('inc/distant');
// pour 'copie_locale'
$fichier = copie_locale($source);
if ($fichier) {
$fichier = _DIR_RACINE . $fichier;
$files[] = array('tmp_name' => $fichier, 'name' => basename($fichier));
$ajouter_documents = charger_fonction('ajouter_documents', 'action');
spip_log("convertit doc {$id_document} en local: {$source} => {$fichier}");
$liste = array();
$ajouter_documents($id_document, $files, '', 0, $row['mode'], $liste);
spip_unlink($fichier);
// ajouter l'origine du document aux credits
include_spip('action/editer_document');
document_modifier($id_document, array('credits' => ($row['credits'] ? $row['credits'] . ', ' : '') . $source));
return true;
} else {
spip_log("echec copie locale {$source}");
}
return _T('medias:erreur_copie_fichier', array('nom' => $source));
}
示例4: base_upgrade_dist
/**
* Programme de mise a jour des tables SQL lors d'un chgt de version.
* L'entree dans cette fonction est reservee au maj de SPIP coeur
*
* Marche aussi pour les plugins en appelant directement la fonction maj_plugin
* Pour que ceux-ci profitent aussi de la reprise sur interruption,
* ils doivent simplement indiquer leur numero de version installee dans une meta
* et fournir le tableau maj a la fonction maj_plugin.
* La reprise sur timeout se fait alors par la page admin_plugin et jamais par ici
*
* http://doc.spip.org/@base_upgrade_dist
*
* @param string $titre
* @param string $reprise
* @return
*/
function base_upgrade_dist($titre = '', $reprise = '')
{
if (!$titre) {
return;
}
// anti-testeur automatique
if ($GLOBALS['spip_version_base'] != $GLOBALS['meta']['version_installee']) {
if (!is_numeric(_request('reinstall'))) {
include_spip('base/create');
spip_log("recree les tables eventuellement disparues", "maj." . _LOG_INFO_IMPORTANTE);
creer_base();
}
// quand on rentre par ici, c'est toujours une mise a jour de SPIP
// lancement de l'upgrade SPIP
$res = maj_base();
if ($res) {
// on arrete tout ici !
exit;
}
}
spip_log("Fin de mise a jour SQL. Debut m-a-j acces et config", "maj." . _LOG_INFO_IMPORTANTE);
// supprimer quelques fichiers temporaires qui peuvent se retrouver invalides
@spip_unlink(_CACHE_RUBRIQUES);
@spip_unlink(_CACHE_PIPELINES);
@spip_unlink(_CACHE_PLUGINS_PATH);
@spip_unlink(_CACHE_PLUGINS_OPT);
@spip_unlink(_CACHE_PLUGINS_FCT);
@spip_unlink(_CACHE_CHEMIN);
@spip_unlink(_DIR_TMP . "plugin_xml_cache.gz");
include_spip('inc/auth');
auth_synchroniser_distant();
$config = charger_fonction('config', 'inc');
$config();
}
示例5: action_skeleditor_delete_dist
/**
* Plugin SkelEditor
* Editeur de squelette en ligne
* (c) 2007-2010 erational
* Licence GPL-v3
*
*/
function action_skeleditor_delete_dist(){
$securiser_action = charger_fonction('securiser_action','inc');
$file_name = $securiser_action();
if (autoriser('supprimer','squelette',$file_name)){
spip_unlink($file_name);
}
}
示例6: copie_locale
/**
* Cree au besoin la copie locale d'un fichier distant
*
*
* Prend en argument un chemin relatif au rep racine, ou une URL
* Renvoie un chemin relatif au rep racine, ou false
*
* http://doc.spip.org/@copie_locale
*
* @param $source
* @param string $mode
* 'test' - ne faire que tester
* 'auto' - charger au besoin
* 'modif' - Si deja present, ne charger que si If-Modified-Since
* 'force' - charger toujours (mettre a jour)
* @param string $local
* permet de specifier le nom du fichier local (stockage d'un cache par exemple, et non document IMG)
* @return bool|string
*/
function copie_locale($source, $mode='auto') {
// si c'est la protection de soi-meme, retourner le path
if ($mode !== 'force' AND preg_match(_REGEXP_COPIE_LOCALE, $source, $local)) {
$source = substr(_DIR_IMG,strlen(_DIR_RACINE)) . urldecode($local[1]);
return @file_exists($source) ? $source : false;
}
$local = fichier_copie_locale($source);
$localrac = _DIR_RACINE.$local;
$t = ($mode=='force') ? false : @file_exists($localrac);
// test d'existence du fichier
if ($mode=='test') return $t ? $local : '';
// si $local = '' c'est un fichier refuse par fichier_copie_locale(),
// par exemple un fichier qui ne figure pas dans nos documents ;
// dans ce cas on n'essaie pas de le telecharger pour ensuite echouer
if (!$local) return false;
// sinon voir si on doit/peut le telecharger
if ($local==$source OR !preg_match(',^\w+://,', $source))
return $local;
if ($mode=='modif' OR !$t){
// passer par un fichier temporaire unique pour gerer les echecs en cours de recuperation
// et des eventuelles recuperations concurantes
include_spip("inc/acces");
$localractmp = "$localrac.".creer_uniqid().".tmp";
$res = recuperer_page($source, $localractmp, false, _COPIE_LOCALE_MAX_SIZE, '', '', false, $t ? filemtime($localrac) : '');
if ($res) {
// si OK on supprime l'ancien fichier et on renomme
spip_log("copie_locale : recuperation $source sur $localractmp taille $res OK, renommage en $localrac");
spip_unlink($localrac);
@rename($localractmp, $localrac);
} else {
// sinon on supprime le fichier temporaire qui a echoue et qui est sans doute corrompu...
spip_log("copie_locale : Echec recuperation $source sur $localractmp, fichier supprime",_LOG_INFO_IMPORTANTE);
spip_unlink($localractmp);
}
if (!$res) return $t ? $local : false;
// pour une eventuelle indexation
pipeline('post_edition',
array(
'args' => array(
'operation' => 'copie_locale',
'source' => $source,
'fichier' => $local
),
'data' => null
)
);
}
return $local;
}
示例7: action_supprimer_document_dist
function action_supprimer_document_dist($id_document = 0)
{
if (!$id_document) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$id_document = $securiser_action();
}
include_spip('inc/autoriser');
if (!autoriser('supprimer', 'document', $id_document)) {
spip_log("Echec : Suppression document {$id_document} interdite", _LOG_ERREUR);
return false;
}
// si c'etait une vignette, modifier le document source !
if ($source = sql_getfetsel('id_document', 'spip_documents', 'id_vignette=' . intval($id_document))) {
include_spip('action/editer_document');
document_modifier($source, array("id_vignette" => 0));
}
include_spip('inc/documents');
if (!($doc = sql_fetsel('*', 'spip_documents', 'id_document=' . intval($id_document)))) {
spip_log("Echec : Suppression document {$id_document} : le document n'existe pas en base", _LOG_ERREUR);
return false;
}
spip_log("Suppression du document {$id_document} (" . $doc['fichier'] . ")");
include_spip('action/editer_liens');
// Si c'est un document ayant une vignette, supprimer aussi la vignette
if ($doc['id_vignette']) {
action_supprimer_document_dist($doc['id_vignette']);
objet_dissocier(array('document' => $doc['id_vignette']), '*');
}
// Si c'est un document ayant des documents annexes (sous-titre, ...)
// les supprimer aussi
$annexes = array_map('reset', sql_allfetsel("id_document", "spip_documents_liens", "objet='document' AND id_objet=" . intval($id_document)));
foreach ($annexes as $id) {
action_supprimer_document_dist($id);
}
// dereferencer dans la base
objet_dissocier(array('document' => $id_document), '*', array('role' => '*'));
sql_delete('spip_documents', 'id_document=' . intval($id_document));
// Supprimer le fichier si le doc est local,
// et la copie locale si le doc est distant
if ($doc['distant'] == 'oui') {
include_spip('inc/distant');
if ($local = _DIR_RACINE . copie_locale($doc['fichier'], 'test')) {
spip_unlink($local);
}
} else {
spip_unlink(get_spip_doc($doc['fichier']));
}
pipeline('post_edition', array('args' => array('operation' => 'supprimer_document', 'action' => 'supprimer_document', 'table' => 'spip_documents', 'id_objet' => $id_document, 'document' => $doc), 'data' => null));
return true;
}
示例8: action_purger_dist
/**
* Action de purge du cache
*
* L'argument peut être :
*
* - inhibe_cache : inhibe le cache pendant 24h
* - reactive_cache : enlève l'inhibition du cache
* - cache : nettoie tous les caches (sauf celui des vignettes)
* - squelettes : nettoie le cache de compilation des squelettes
* - vignettes : nettoie le cache des vignettes (et compressions css/js)
*
* @pipeline_appel trig_purger
* @uses supprime_invalideurs()
* @uses purger_repertoire()
*
* @param string|null $arg
* Argument attendu. En absence utilise l'argument
* de l'action sécurisée.
*/
function action_purger_dist($arg = null)
{
if (is_null($arg)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
include_spip('inc/invalideur');
spip_log("purger {$arg}");
switch ($arg) {
case 'inhibe_cache':
// inhiber le cache pendant 24h
ecrire_meta('cache_inhib', $_SERVER['REQUEST_TIME'] + 24 * 3600);
break;
case 'reactive_cache':
effacer_meta('cache_inhib');
break;
case 'cache':
supprime_invalideurs();
@spip_unlink(_CACHE_RUBRIQUES);
@spip_unlink(_CACHE_CHEMIN);
@spip_unlink(_DIR_TMP . "plugin_xml_cache.gz");
// on ne supprime que _CACHE_PLUGINS_OPT qui declenche la reconstruction des 3
// _CACHE_PIPELINES _CACHE_PLUGINS_PATH et _CACHE_PLUGINS_FCT
// pour eviter des problemes de concurence
// cf http://core.spip.org/issues/2989
//@spip_unlink(_CACHE_PIPELINES);
//@spip_unlink(_CACHE_PLUGINS_PATH);
//@spip_unlink(_CACHE_PLUGINS_FCT);
@spip_unlink(_CACHE_PLUGINS_OPT);
purger_repertoire(_DIR_CACHE, array('subdir' => true));
purger_repertoire(_DIR_AIDE);
purger_repertoire(_DIR_VAR . 'cache-css');
purger_repertoire(_DIR_VAR . 'cache-js');
break;
case 'squelettes':
purger_repertoire(_DIR_SKELS);
break;
case 'vignettes':
purger_repertoire(_DIR_VAR, array('subdir' => true));
supprime_invalideurs();
purger_repertoire(_DIR_CACHE, array('subdir' => true));
break;
}
// le faire savoir aux plugins
pipeline('trig_purger', $arg);
}
示例9: test_ecrire
function test_ecrire($my_dir)
{
static $chmod = 0;
$ok = false;
$script = @file_exists('spip_loader.php') ? 'spip_loader.php' : $_SERVER['PHP_SELF'];
$self = basename($script);
$uid = @fileowner('.');
$uid2 = @fileowner($self);
$gid = @filegroup('.');
$gid2 = @filegroup($self);
$perms = @fileperms($self);
// Comparer l'appartenance d'un fichier cree par PHP
// avec celle du script et du repertoire courant
if (!$chmod) {
@rmdir('test');
spip_unlink('test');
// effacer au cas ou
@touch('test');
if ($uid > 0 && $uid == $uid2 && @fileowner('test') == $uid) {
$chmod = 0700;
} else {
if ($gid > 0 && $gid == $gid2 && @filegroup('test') == $gid) {
$chmod = 0770;
} else {
$chmod = 0777;
}
}
// Appliquer de plus les droits d'acces du script
if ($perms > 0) {
$perms = $perms & 0777 | ($perms & 0444) >> 2;
$chmod |= $perms;
}
spip_unlink('test');
}
// Verifier que les valeurs sont correctes
$f = @fopen($my_dir . 'test.php', 'w');
if ($f) {
@fputs($f, '<' . '?php $ok = true; ?' . '>');
@fclose($f);
@chmod($my_dir . 'test.php', $chmod);
include $my_dir . 'test.php';
}
spip_unlink($my_dir . 'test.php');
return $ok ? $chmod : false;
}
示例10: accesrestreint_gerer_htaccess
/**
* on essaye de poser un htaccess rewrite global sur IMG/
* si fonctionne on gardera des ulrs de document permanente
* si ne fonctionne pas on se rabat sur creer_htaccess du core
* qui pose un deny sur chaque sous repertoire de IMG/
*
* http://doc.spip.org/@gerer_htaccess
*
* @param bool $active
* @return bool
*/
function accesrestreint_gerer_htaccess($active = true)
{
if (!$active) {
spip_unlink(_DIR_IMG . _ACCESS_FILE_NAME);
effacer_meta("creer_htaccess");
// effacer les xx/.htaccess crees eventuellement par le core
include_spip("inc/acces");
gerer_htaccess();
return false;
} else {
$rewrite = <<<rewrite
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(\\d+/[\\da-f]+)\$
RewriteRule ^\\w+/.*\$ ../spip.php?action=api_docrestreint&arg=%1/\$0 [skip=100]
RewriteRule ^\\w+/.*\$ ../spip.php?action=api_docrestreint&arg=0/0/\$0 [skip=100]
rewrite;
// On cherche si le dossier racine a un RewriteBase plus long que "/"
if (file_exists(_DIR_RACINE . _ACCESS_FILE_NAME)) {
$ht = '';
lire_fichier(_DIR_RACINE . _ACCESS_FILE_NAME, $ht);
if ($ht and preg_match('|^RewriteBase\\s+/.+$|m', $ht, $rewritebase)) {
$rewritebase = rtrim(trim($rewritebase[0]), '/') . '/' . _NOM_PERMANENTS_ACCESSIBLES;
$rewrite = $rewritebase . "\n" . $rewrite;
}
}
ecrire_fichier(_DIR_IMG . _ACCESS_FILE_NAME, $rewrite);
// verifier sur l'url de test
include_spip('inc/distant');
$url_test = url_absolue(_DIR_IMG . "test/.test?0/1");
$test = recuperer_page($url_test);
// si l'url de test renvoie bien "OK" alors rewrite rule fonctionne et on peut baser la protection de document sur ce shema
if ($test == "OK") {
effacer_meta("creer_htaccess");
// securite, et permet de generer des urls permanentes
} else {
// sinon on se rabat sur un deny et on generera des urls moches
spip_unlink(_DIR_IMG . _ACCESS_FILE_NAME);
ecrire_meta("creer_htaccess", "oui");
}
// dans tous les cas on passe par gerer_htaccess pour enlever ou mettre les .htaccess dans les sous rep
include_spip("inc/acces");
gerer_htaccess();
return true;
}
}
示例11: teleporter_http_recuperer_source
/**
* Récupérer la source et détecter son extension
*
* @uses teleporter_http_extension()
*
* @param string $source
* URL de la source HTTP
* @param string $dest_tmp
* Répertoire de destination
* @return array|string
* - Texte d'erreur si une erreur survient,
* - Liste sinon (répertoire de destination temporaire, extension du fichier source)
*/
function teleporter_http_recuperer_source($source, $dest_tmp)
{
# securite : ici on repart toujours d'une source neuve
if (file_exists($dest_tmp)) {
spip_unlink($dest_tmp);
}
$extension = "";
# si on ne dispose pas encore du fichier
# verifier que le zip en est bien un (sans se fier a son extension)
# en chargeant son entete car l'url initiale peut etre une simple
# redirection et ne pas comporter d'extension .zip
include_spip('inc/distant');
$head = recuperer_page($source, false, true, 0);
if (preg_match(",^Content-Type:\\s*?(.*)\$,Uims", $head, $m) and include_spip('base/typedoc')) {
$mime = $m[1];
// passer du mime a l'extension !
if ($e = array_search($mime, $GLOBALS['tables_mime'])) {
$extension = $e;
}
}
if (!$extension or in_array($extension, array('bin', 'gz'))) {
if (preg_match(",^Content-Disposition:\\s*attachment;\\s*filename=(.*)['\"]?\$,Uims", $head, $m) and $e = teleporter_http_extension($m[1])) {
$extension = $e;
} else {
$extension = teleporter_http_extension($source);
}
}
# format de fichier inconnu
if (!$extension) {
spip_log("Type de fichier inconnu pour la source {$source}", "teleport" . _LOG_ERREUR);
return _T('svp:erreur_teleporter_type_fichier_inconnu', array('source' => $source));
}
$dest_tmp = preg_replace(";\\.[\\w]{2,3}\$;i", "", $dest_tmp) . ".{$extension}";
if (!defined('_SVP_PAQUET_MAX_SIZE')) {
define('_SVP_PAQUET_MAX_SIZE', 67108864);
}
// 64Mo
include_spip('inc/distant');
$dest_tmp = copie_locale($source, 'force', $dest_tmp, _SVP_PAQUET_MAX_SIZE);
if (!$dest_tmp or !file_exists($dest_tmp = _DIR_RACINE . $dest_tmp)) {
spip_log("Chargement impossible de la source {$source}", "teleport" . _LOG_ERREUR);
return _T('svp:erreur_teleporter_chargement_source_impossible', array('source' => $source));
}
return array($dest_tmp, $extension);
}
示例12: action_elix_sansson_reencode_dist
function action_elix_sansson_reencode_dist($arg = false)
{
if (!intval($arg)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
$ps_ffmpeg = exec('ps -C ffmpeg', $retour, $retour_int);
if ($retour_int == 1 && count($retour) >= 3) {
return false;
}
include_spip('inc/documents');
$source = sql_fetsel('*', 'spip_documents', 'id_document=' . intval($arg));
if (isset($source['fichier'])) {
$chemin = get_spip_doc($source['fichier']);
$dest = _DIR_TMP . basename($source['fichier']);
$commande = 'ffmpeg -i ' . escapeshellarg($chemin) . ' -an -vcodec copy ' . escapeshellarg($dest);
$encodage = exec($commande, $retour, $retour_int);
if (file_exists($dest) && filesize($dest) > 0) {
@rename($chemin, "{$chemin}--.old");
$id_article = sql_getfetsel('id_objet', 'spip_documents_liens', 'id_document=' . intval($arg) . ' AND objet="article"');
$ajouter_doc = charger_fonction('ajouter_documents', 'action');
$objet = 'article';
$id_objet = $id_article;
$mode = 'document';
$files = array();
$filename = basename($dest);
$files[0]['tmp_name'] = $dest;
$files[0]['name'] = $filename;
$id_document_new = $ajouter_doc($arg, $files, $objet, $id_objet, $mode);
if (intval(reset($id_document_new)) > 0) {
// retablir le fichier !
if ($chemin) {
@rename("{$chemin}--.old", $chemin);
}
} else {
// supprimer vraiment le fichier initial
spip_unlink("{$chemin}--.old");
}
}
if (file_exists($dest)) {
spip_unlink($dest);
}
}
}
示例13: base_upgrade_dist
function base_upgrade_dist($titre='', $reprise='')
{
if (!$titre) return; // anti-testeur automatique
if ($GLOBALS['spip_version']!=$GLOBALS['meta']['version_installee']) {
if (!is_numeric(_request('reinstall'))) {
include_spip('base/create');
spip_log("recree les tables eventuellement disparues");
creer_base();
}
$meta = _request('meta');
if (!$meta)
$res = maj_base();
// reprise sur demande de mise a jour interrompue pour plugin
else $res= maj_while($GLOBALS['meta'][$meta],
$GLOBALS[$meta]['cible'],
$GLOBALS[$meta]['maj'],
$meta,
_request('table'));
if ($res) {
if (!is_array($res))
spip_log("Pb d'acces SQL a la mise a jour");
else {
include_spip('inc/minipres');
echo minipres(_T('avis_operation_echec') . ' ' . join(' ', $res));
exit;
}
}
}
spip_log("Fin de mise a jour SQL. Debut m-a-j acces et config");
// supprimer quelques fichiers temporaires qui peuvent se retrouver invalides
spip_unlink(_DIR_TMP.'plugin_xml.cache');
spip_unlink(_DIR_SESSIONS.'ajax_fonctions.txt');
spip_unlink(_CACHE_PIPELINES);
spip_unlink(_CACHE_RUBRIQUES);
spip_unlink(_CACHE_PLUGINS_OPT);
spip_unlink(_CACHE_PLUGINS_FCT);
spip_unlink(_CACHE_PLUGINS_VERIF);
include_spip('inc/acces');
ecrire_acces();
$config = charger_fonction('config', 'inc');
$config();
}
示例14: convert_utf8_init
function convert_utf8_init($tables_a_convertir)
{
// noter dans les meta qu'on veut convertir, et quoi
$charset_source = $GLOBALS['meta']['charset'];
ecrire_meta('charset', 'utf-8');
foreach ($tables_a_convertir as $table => $champ) {
spip_log("demande update charset table $table ($champ)");
spip_query("UPDATE $table SET $champ = CONCAT('<CONVERT ".$charset_source.">', $champ) WHERE $champ NOT LIKE '<CONVERT %'");
}
spip_unlink(_DIR_TMP.'convert_utf8_backup.sql');
// convertir spip_meta
foreach ($GLOBALS['meta'] as $c => $v) {
$v2 = unicode_to_utf_8(charset2unicode($v, $charset_source));
if ($v2 != $v) ecrire_meta($c, $v2);
}
}
示例15: action_supprimer_dump_dist
/**
* Telecharger un dump quand on est webmestre
*
* @param string $arg
*/
function action_supprimer_dump_dist($arg = null)
{
if (!$arg) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
$fichier = $arg;
if (autoriser('webmestre')) {
// verifier que c'est bien une sauvegarde
include_spip("inc/dump");
$dir = dump_repertoire();
$dumps = dump_lister_sauvegardes($dir);
foreach ($dumps as $dump) {
if ($dump['fichier'] == $fichier) {
spip_unlink($dir . $fichier);
}
}
}
}