本文整理汇总了PHP中sous_repertoire函数的典型用法代码示例。如果您正苦于以下问题:PHP sous_repertoire函数的具体用法?PHP sous_repertoire怎么用?PHP sous_repertoire使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了sous_repertoire函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: action_copier_local_post
function action_copier_local_post($id_document) {
// Il faut la source du document pour le copier
$row = sql_fetsel("fichier, descriptif", "spip_documents", "id_document=$id_document");
$source = $row['fichier'];
include_spip('inc/distant'); // pour 'copie_locale'
include_spip('inc/documents'); // pour 'set_spip_doc'
$fichier = copie_locale($source);
if ($fichier) {
$fichier = _DIR_RACINE . $fichier;
$taille = filesize($fichier);
// On le sort du repertoire IMG/distant/
$dest = preg_replace(',^.*/distant/[^/_]+[/_],', '', $fichier);
$dest = sous_repertoire(_DIR_IMG, preg_replace(',^.*\.,', '', $fichier)) . $dest;
if ($dest != $fichier
AND @rename($fichier, $dest))
$fichier = $dest;
// On indique l'ancien URL dans le descriptif (pis-aller)
$row['descriptif'] .= ($row['descriptif'] ? "\n\n":'') . "[->$source]";
// $fichier contient IMG/distant/...
// or, dans la table documents, IMG doit etre exclu.
$fichier = set_spip_doc($fichier);
spip_log("convertit doc $id_document en local: $source => $fichier");
sql_updateq('spip_documents', array('fichier' =>$fichier, 'distant'=>'non', 'taille'=>$taille, 'descriptif'=> $row['descriptif']),"id_document=".$id_document);
} else {
spip_log("echec copie locale $source");
}
}
示例2: formulaires_restauration_cfg_charger_dist
function formulaires_restauration_cfg_charger_dist()
{
$fonds = array();
$pages_cfg = explode(':', _SARKASPIP_PAGES_CONFIG);
foreach ($pages_cfg as $_page) {
if ($_page != 'maintenance') {
$fond = "sarkaspip_{$_page}";
$fonds[$fond] = _T("sarkaspip:{$fond}");
}
}
$dir = sous_repertoire(_DIR_TMP, "cfg");
$saves = preg_files($dir, implode('|', array_flip($fonds)));
$options = '';
$groupe = '';
foreach ($saves as $_fichier) {
$nom = basename($_fichier);
$dirs = explode('/', dirname($_fichier));
$_dir = end($dirs);
if ($_dir != $groupe) {
if ($options) {
$options .= '</optgroup>';
}
$options .= '<optgroup style="font-weight: strong;" label="' . $fonds[$_dir] . '">';
$groupe = $_dir;
}
$options .= '<option value="' . $_fichier . '">' . $nom . '</option>';
}
if ($options) {
$options .= '</optgroup>';
}
$valeurs = array('_fichiers_sauvegardes' => $options);
return $valeurs;
}
示例3: formulaires_sauvegarde_cfg_traiter_dist
function formulaires_sauvegarde_cfg_traiter_dist()
{
$message = array();
$fonds = array();
$mode = _request('mode');
if ($mode == 'page') {
$fonds[] = _request('fond_a_sauvegarder');
} else {
$pages_cfg = explode(':', _SARKASPIP_PAGES_CONFIG);
foreach ($pages_cfg as $_page) {
if ($_page != 'maintenance') {
$fonds[] = "sarkaspip_{$_page}";
}
}
}
$dir_cfg = sous_repertoire(_DIR_TMP, "cfg");
include_spip('inc/sarkaspip_filtres');
$ok = sauvegarder_fonds($fonds, $dir_cfg, 'maintenance');
if (!$ok) {
$message['message_nok'] = _T('sarkaspip:cfg_msg_fichier_sauvegarde_nok');
}
if ($ok) {
if ($mode == 'page') {
$message['message_ok'] = _T('sarkaspip:cfg_msg_fichier_sauvegarde_ok', array('nom_fichier' => $nom));
} else {
$message['message_ok'] = _T('sarkaspip:cfg_msg_fichiers_sauvegardes_ok');
}
}
return $message;
}
示例4: minifier
/**
* Minifier un fichier JS ou CSS
*
* Si la source est un chemin, on retourne un chemin avec le contenu minifié
* dans _DIR_VAR/cache_$format/
* Si c'est un flux on le renvoit compacté
* Si on ne sait pas compacter, on renvoie ce qu'on a recu
*
* @param string $source
* Contenu à minifier ou chemin vers un fichier dont on veut minifier le contenu
* @param string $format
* Format de la source (js|css).
* @return string
* - Contenu minifié (si la source est un contenu)
* - Chemin vers un fichier ayant le contenu minifié (si source est un fichier)
*/
function minifier($source, $format = null)
{
if (!$format and preg_match(',\\.(js|css)$,', $source, $r)) {
$format = $r[1];
}
include_spip('inc/compresseur_minifier');
if (!function_exists($minifier = 'minifier_' . $format)) {
return $source;
}
// Si on n'importe pas, est-ce un fichier ?
if (!preg_match(',[\\s{}],', $source) and preg_match(',\\.' . $format . '$,i', $source, $r) and file_exists($source)) {
// si c'est une css, il faut reecrire les url en absolu
if ($format == 'css') {
$source = url_absolue_css($source);
}
$f = basename($source, '.' . $format);
$f = sous_repertoire(_DIR_VAR, 'cache-' . $format) . preg_replace(",(.*?)(_rtl|_ltr)?\$,", "\\1-minify-" . substr(md5("{$source}-minify"), 0, 4) . "\\2", $f, 1) . '.' . $format;
if (@filemtime($f) > @filemtime($source) and (!defined('_VAR_MODE') or _VAR_MODE != 'recalcul')) {
return $f;
}
if (!lire_fichier($source, $contenu)) {
return $source;
}
// traiter le contenu
$contenu = $minifier($contenu);
// ecrire le fichier destination, en cas d'echec renvoyer la source
if (ecrire_fichier($f, $contenu, true)) {
return $f;
} else {
return $source;
}
}
// Sinon simple minification de contenu
return $minifier($source);
}
示例5: install_etape_4_dist
function install_etape_4_dist()
{
// creer le repertoire cache, qui sert partout !
if (!@file_exists(_DIR_CACHE)) {
$rep = preg_replace(',' . _DIR_TMP . ',', '', _DIR_CACHE);
$rep = sous_repertoire(_DIR_TMP, $rep, true, true);
}
echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
echo info_progression_etape(4, 'etape_', 'install/');
echo "<div class='success'><b>" . _T('info_derniere_etape') . "</b><p>" . _T('info_utilisation_spip') . "</p></div>";
echo "<p>" . _T('plugin_info_plugins_dist_1', array('plugins_dist' => "<tt>" . joli_repertoire(_DIR_PLUGINS_DIST) . "</tt>")) . "</p>";
// installer les extensions
include_spip('inc/plugin');
$afficher = charger_fonction("afficher_liste", 'plugins');
echo $afficher(self(), liste_plugin_files(_DIR_PLUGINS_DIST), array(), array(), _DIR_PLUGINS_DIST, 'afficher_nom_plugin');
// si la base de SPIP est up, on peut installer les plugins, sinon on passe cette etape
// car les plugins supposent que la base de SPIP est dans son etat normal (mise a jour)
// au premier passage dans l'espace prive on aura une demande d'upgrade qui se poursuit sur la page plugin
// et procede alors a l'installation
if (!isset($GLOBALS['meta']['version_installee']) or $GLOBALS['spip_version_base'] == str_replace(',', '.', $GLOBALS['meta']['version_installee'])) {
plugin_installes_meta();
}
// mettre a jour si necessaire l'adresse du site
// securite si on arrive plus a se loger
include_spip('inc/config');
appliquer_adresse_site('');
// aller a la derniere etape qui clos l'install et redirige
$suite = "\n<input type='hidden' name='etape' value='fin' />" . bouton_suivant(_T('login_espace_prive'));
echo generer_form_ecrire('install', $suite);
echo install_fin_html();
}
示例6: revisions_repair_unserialized_fragments
function revisions_repair_unserialized_fragments()
{
$res = sql_select("*", "spip_versions_fragments", "compress=" . intval(-1));
$n = sql_count($res);
spip_log("{$n} fragments a verifier", "maj");
while ($row = sql_fetch($res)) {
$fragment = $row['fragment'];
$set = array('compress' => 0);
// verifier que le fragment est bien serializable
if (unserialize($fragment) === false and strncmp($fragment, "corrompu", 8) !== 0) {
$dir_tmp = sous_repertoire(_DIR_TMP, "versions_fragments_corrompus");
$set['fragment'] = revisions_repair_serialise($fragment);
if (strncmp($set['fragment'], "corrompu", 8) == 0) {
$f = $row['id_fragment'] . "-" . $row['objet'] . "-" . $row['id_objet'];
spip_log("Fragment serialize corrompu {$f}", "maj" . _LOG_ERREUR);
$f = $f . "-serialize.txt";
ecrire_fichier($dir_tmp . $f, $fragment);
}
}
sql_updateq("spip_versions_fragments", $set, $w = "id_fragment=" . intval($row['id_fragment']) . " AND id_objet=" . intval($row['id_objet']) . " AND objet=" . sql_quote($row['objet']) . " AND version_min=" . intval($row['version_min']));
#spip_log($w,"maj");
if (time() > _TIME_OUT) {
return;
}
}
}
示例7: teleporter_verifier_destination
/**
* Vérifier et préparer l'arborescence jusqu'au répertoire parent
*
* @param string $dest
* @return bool|string
* false en cas d'échec
* Chemin du répertoire sinon
*/
function teleporter_verifier_destination($dest)
{
$dest = rtrim($dest, "/");
$final = basename($dest);
$base = dirname($dest);
$create = array();
// on cree tout le chemin jusqu'a dest non inclus
while (!is_dir($base)) {
$create[] = basename($base);
$base = dirname($base);
}
while (count($create)) {
if (!is_writable($base)) {
return false;
}
$base = sous_repertoire($base, array_pop($create));
if (!$base) {
return false;
}
}
if (!is_writable($base)) {
return false;
}
return $base . "/{$final}";
}
示例8: install_etape_4_dist
function install_etape_4_dist()
{
// creer le repertoire cache, qui sert partout !
if (!@file_exists(_DIR_CACHE)) {
$rep = preg_replace(',' . _DIR_TMP . ',', '', _DIR_CACHE);
$rep = sous_repertoire(_DIR_TMP, $rep, true, true);
}
echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
echo info_progression_etape(4, 'etape_', 'install/');
echo "<div class='success'><b>" . _T('info_derniere_etape') . "</b><p>" . _T('info_utilisation_spip') . "</p></div>";
echo "<p>" . _T('plugin_info_plugins_dist_1', array('plugins_dist' => "<tt>" . joli_repertoire(_DIR_PLUGINS_DIST) . "</tt>")) . "</p>";
// installer les extensions
include_spip('inc/plugin');
$afficher = charger_fonction("afficher_liste", 'plugins');
echo $afficher(self(), liste_plugin_files(_DIR_PLUGINS_DIST), array(), array(), _DIR_PLUGINS_DIST, 'afficher_nom_plugin');
plugin_installes_meta();
// mettre a jour si necessaire l'adresse du site
// securite si on arrive plus a se loger
include_spip('inc/config');
appliquer_adresse_site('');
// aller a la derniere etape qui clos l'install et redirige
$suite = "\n<input type='hidden' name='etape' value='fin' />" . bouton_suivant(_T('login_espace_prive'));
echo generer_form_ecrire('install', $suite);
echo install_fin_html();
}
示例9: action_pdf2swf_convert
function action_pdf2swf_convert() {
global $visiteur_session;
$id_auteur = $visiteur_session['id_auteur'];
$arg = _request('arg');
$args = explode(":",$arg);
// le 1er element de _request('arg') est id_article=XXX
$Targs = explode("=", $args[0]);
$id_article = $Targs[1];
$hash = _request('hash');
$redirect = _request('redirect');
if ($redirect==NULL) $redirect="";
include_spip("inc/securiser_action");
// if (!autoriser('creerarticledans', 'rubrique', $id_rubrique)) die(_T('avis_non_acces_page'));
// ss-rep temporaire specifique de l'auteur en cours: tmp/pdf2swf/id_auteur/ => le creer si il n'existe pas
$base_dezip = _DIR_TMP."pdf2swf/"; // avec / final
if (!is_dir($base_dezip)) if (!sous_repertoire(_DIR_TMP,'pdf2swf')) die (_T('pdfswf:err_repertoire_tmp'));
$rep_dezip = $base_dezip.$id_auteur.'/';
if (!is_dir($rep_dezip)) if (!sous_repertoire($base_dezip,$id_auteur)) die (_T('pdfswf:err_repertoire_tmp'));
// traitement d'un fichier pdf envoye par $_POST
$fichier_zip = addslashes($_FILES['fichier_pdf']['name']);
if ($_FILES['fichier_pdf']['name'] == ''
OR $_FILES['fichier_pdf']['error'] != 0
OR !move_uploaded_file($_FILES['fichier_pdf']['tmp_name'], $rep_dezip.$fichier_zip)
) die(_T('pdfswf:err_telechargement_fichier'));
// conversion du fichier pdf en swf
// $command='pdf2swf -t '.$rep_dezip.$fichier_zip.' '.$rep_dezip.$fichier_zip.'.swf';
$command='pdf2swf -t -B '. _DIR_PLUGIN_PDF2SWF.'fdplayer.swf '.$rep_dezip.$fichier_zip.' '.$rep_dezip.$fichier_zip.'.swf';
exec($command);
//attacher le fichier pdf original a l'article
if (!isset($ajouter_documents))
$ajouter_documents = charger_fonction('ajouter_documents','inc');
// la y'a un bogue super-bizarre avec la fonction spip_abstract_insert() qui est donnee comme absente lors de l'appel de ajouter_document()
if (!function_exists('spip_abstract_insert')) include_spip('base/abstract_sql');
$id_doc_swf = $ajouter_documents($rep_dezip.$fichier_zip.'.swf', $fichier_zip.'.swf', "article", $id_article, 'document', 0, $toto='');
// si necessaire attacher le fichier odt original a l'article et lui mettre un titre signifiant
if (_request('attacher_pdf') == '1') {
$id_doc_odt = $ajouter_documents($rep_dezip.$fichier_zip, $fichier_zip, "article", $id_article, 'document', 0, $toto='');
}
if (!function_exists('effacer_repertoire_temporaire')) include_spip('inc/getdocument');
// vider le contenu du rep de dezippage
effacer_repertoire_temporaire($rep_dezip);
// aller sur la page de l'article qui vient d'etre cree
redirige_par_entete(parametre_url(str_replace("&","&",urldecode($redirect)),'id_article',$id_article,'&'));
}
示例10: base_dump_dir
function base_dump_dir($meta){
// determine upload va aussi initialiser l'index "restreint"
$maindir = determine_upload();
if (!$GLOBALS['visiteur_session']['restreint'])
$maindir = _DIR_DUMP;
$dir = sous_repertoire($maindir, $meta);
return $dir;
}
示例11: dump_repertoire
/**
* Répertoire de sauvegarde
*
* Crée et retourne le chemin du répertoire de sauvegarde
*
* @see _DIR_DUMP
*
* @return string
*/
function dump_repertoire()
{
$repertoire = _DIR_DUMP;
if (!@file_exists($repertoire) and !($repertoire = sous_repertoire(_DIR_DUMP, '', false, true))) {
$repertoire = preg_replace(',' . _DIR_TMP . ',', '', _DIR_DUMP);
$repertoire = sous_repertoire(_DIR_TMP, $repertoire);
}
return $repertoire;
}
示例12: presta_paybox_install_dist
/**
* Installation des fichiers de configuration/parametrage PAYBOX
*/
function presta_paybox_install_dist()
{
$dir = sous_repertoire(_DIR_ETC, 'presta');
$dir = sous_repertoire($dir, 'paybox');
if (!file_exists($dir . "pbx_ids.php")) {
$merchant_config = "<" . "?php\n\t\tfunction bank_paybox_pbx_ids(){return array('PBX_IDENTIFIANT'=>'2','PBX_SITE'=>'1999888','PBX_RANG'=>'99');}\n" . "?" . ">";
ecrire_fichier($dir . "pbx_ids.php", $merchant_config);
ecrire_meta("bank_paybox_pbx_ids", substr($dir, strlen(_DIR_ETC)) . "pbx_ids.php");
}
}
示例13: action_generer_recu_souscription_dist
function action_generer_recu_souscription_dist($id_souscription = null, $annee = null)
{
if (is_null($id_souscription)) {
$id_souscription = _request('id_souscription');
$annee = _request('annee');
$hash = _request('hash');
$lowsec = souscription_hash_lowsec($id_souscription, $annee);
if ($hash !== $lowsec) {
die('Erreur : URL pas autorisee');
}
} else {
$lowsec = souscription_hash_lowsec($id_souscription, $annee);
}
$format = _request('format');
if (!in_array($format, array('html', 'pdf'))) {
// PDF ou HTML ? si le plugin SPIPDF est la on genere un recu en PDF
$format = "html";
if (test_plugin_actif("spipdf")) {
$format = "pdf";
}
}
$numero = souscription_numero_recu($id_souscription, $annee);
$dir = sous_repertoire(_DIR_IMG, "attestations");
// securite : dossier inaccessible en http
if (!file_exists($f = $dir . ".htaccess")) {
ecrire_fichier($f, "deny from all\n");
}
$filename = $numero . ".{$format}";
$file = $dir . $filename;
if (!file_exists($file)) {
$fond = $format == "pdf" ? "attestation_pdf" : "attestation";
$content = recuperer_fond($fond, array("id_souscription" => $id_souscription, "annee" => $annee, "hash" => $lowsec));
ecrire_fichier($file, $content);
}
$mime = "text/html";
if ($format == "pdf") {
$mime = "application/pdf";
}
header("Content-type: {$mime}");
if ($format == "pdf") {
$filename = preg_replace(",\\W+,", "", $GLOBALS['meta']['nom_site']) . "-Recu-" . $filename;
header("Content-Disposition: attachment; filename={$filename}");
//header("Content-Transfer-Encoding: binary");
}
// fix for IE catching or PHP bug issue
header("Pragma: public");
header("Expires: 0");
// set expiration time
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
if ($cl = filesize($file)) {
header("Content-Length: " . $cl);
}
readfile($file);
}
示例14: test_bal
function test_bal($bali, $skel, $contexte = array())
{
$dossier = sous_repertoire(_DIR_TMP, 'cache-tests');
$fichier = "{$dossier}{$bali}.html";
if ($handle = fopen($fichier, 'w')) {
fwrite($handle, "#CACHE{0}\n[(#REM) " . $bali . " ]\n" . $skel);
fclose($handle);
return recuperer_fond('tmp/cache-tests/' . $bali, $contexte);
}
return '';
}
示例15: teleporter_http_charger_tgz
/**
* Charger un tgz à partir d'un tableau d'options descriptives
*
* @uses http_deballe_recherche_racine()
* @link http://www.phpconcept.net/pcltar Utilise la librairie PclTar
*
* @param array $quoi
* Tableau d'options
* @return array|bool|int|string
* En cas de réussite, Tableau décrivant le zip, avec les index suivant :
* - files : la liste des fichiers présents dans le zip,
* - size : la taille décompressée
* - compressed_size : la taille compressée
* - dirname : répertoire où les fichiers devront être décompréssés
* - tmpname : répertoire temporaire où les fichiers sont décompressés
* - target : cible sur laquelle décompresser les fichiers...
*/
function teleporter_http_charger_tgz($quoi = array())
{
if (!$quoi) {
return false;
}
foreach (array('remove' => '', 'rename' => array(), 'edit' => array(), 'root_extract' => false, 'tmp' => sous_repertoire(_DIR_CACHE, 'chargeur')) as $opt => $def) {
isset($quoi[$opt]) || ($quoi[$opt] = $def);
}
if (!@file_exists($fichier = $quoi['fichier'])) {
return 0;
}
include_spip('inc/pcltar');
$racine = '';
if ($list = PclTarList($fichier)) {
$racine = http_deballe_recherche_racine($list);
$quoi['remove'] = $racine;
} else {
spip_log('charger_decompresser erreur lecture liste tar ' . PclErrorString() . ' pour paquet: ' . $quoi['archive'], "teleport" . _LOG_ERREUR);
return PclErrorString();
}
// si pas de racine commune, reprendre le nom du fichier zip
// en lui enlevant la racine h+md5 qui le prefixe eventuellement
// cf action/charger_plugin L74
if (!strlen($nom = basename($racine))) {
$nom = preg_replace(",^h[0-9a-f]{8}-,i", "", basename($fichier, '.zip'));
}
$dir_export = $quoi['root_extract'] ? $quoi['dest'] : $quoi['dest'] . $nom;
$dir_export = rtrim($dir_export, '/') . '/';
$tmpname = $quoi['tmp'] . $nom . '/';
// choisir la cible selon si on veut vraiment extraire ou pas
$target = $quoi['extract'] ? $dir_export : $tmpname;
// ici, il faut vider le rep cible si il existe deja, non ?
if (is_dir($target)) {
supprimer_repertoire($target);
}
$ok = PclTarExtract($fichier, $target, $quoi['remove']);
if ($ok == 0) {
spip_log('charger_decompresser erreur tar ' . PclErrorString() . ' pour paquet: ' . $quoi['archive'], "teleport" . _LOG_ERREUR);
return PclErrorString();
}
spip_log('charger_decompresser OK pour paquet: ' . $quoi['archive'], "teleport");
$size = $compressed_size = 0;
$removex = ',^' . preg_quote($quoi['remove'], ',') . ',';
foreach ($list as $a => $f) {
$size += $f['size'];
$compressed_size += $f['compressed_size'];
$list[$a] = preg_replace($removex, '', $f['filename']);
}
// Indiquer par un fichier install.log
// a la racine que c'est chargeur qui a installe ce plugin
ecrire_fichier($target . 'install.log', "installation: charger_plugin\n" . "date: " . gmdate('Y-m-d\\TH:i:s\\Z', time()) . "\n" . "source: " . $quoi['archive'] . "\n");
return array('files' => $list, 'size' => $size, 'compressed_size' => $compressed_size, 'dirname' => $dir_export, 'tmpname' => $tmpname, 'target' => $target);
}