• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP translitteration函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中translitteration函数的典型用法代码示例。如果您正苦于以下问题:PHP translitteration函数的具体用法?PHP translitteration怎么用?PHP translitteration使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了translitteration函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: recherche_avancee_google_like

function recherche_avancee_google_like($string, $options = array())
{
    $resume = isset($options['resume']) ? $options['resume'] : ($options['resume'] != 'non' ? $string : '');
    $wrapper = isset($options['wrapper']) ? '<i class="rsusp">[...]</i>' : '';
    $taille = isset($options['taille']) ? $options['taille'] : 55;
    // Convertir en texte brut sans accent
    $string = textebrut($string);
    $string = translitteration($string);
    $rech = translitteration(_request('recherche'));
    // Supprimer les caracteres qui m...
    $badguy = array("^", "/", "\\", "\$", "@", "*");
    $rech = str_replace($badguy, "", $rech);
    // en avant
    $query = rtrim(str_replace("+", " ", $rech));
    $qt = explode(" ", $query);
    if ($wrapper) {
        $num = count($qt);
        // $cc = ceil(55 / $num);
        $cc = $taille;
        for ($i = 0; $i < $num; $i++) {
            $tab[$i] = preg_split("/\\b({$qt[$i]})/i", $string, 2, PREG_SPLIT_DELIM_CAPTURE);
            if (count($tab[$i]) > 1) {
                // Chaine avant
                $avant = substr($tab[$i][0], -$cc, $cc);
                $mots = split(" ", $avant, 2);
                if (count($mots) > 1) {
                    $avant = $mots[1];
                }
                // Chaine apres
                $apres = substr($tab[$i][2], 0, $cc);
                $apres = preg_replace('@(.+)\\s\\S+@s', '\\1', $apres);
                // Concatener
                if ($string_re == '') {
                    $string_re = $wrapper;
                }
                $string_re .= " {$avant}<span class='spip_surligne'>" . $tab[$i][1] . "</span>{$apres} {$wrapper}";
            }
        }
    } else {
        $pattern = array();
        $replace = array();
        foreach ($qt as $t) {
            $pattern[] = "/{$t}/";
            $replace[] = "<span class='spip_surligne'>" . $t . "</span>";
        }
        $string_re = preg_replace($pattern, $replace, $string);
    }
    // Si rien trouve : renvoyer les premiers mots en resume
    if ($resume != '' and $string_re == '') {
        $mots = split(" ", $string, 40);
        for ($i = 0; $i < count($mots) - 1; $i++) {
            $string_re .= $mots[$i] . " ";
            if (strlen($string_re) > 2 * $cc) {
                break;
            }
        }
        $string_re = $resume;
    }
    return $string_re;
}
开发者ID:abelass,项目名称:dei_belgique,代码行数:60,代码来源:dei_belgique_fonctions.php


示例2: importer_csv_nettoie_key

/**
 * enlever les accents des cles presentes dans le head,
 * sinon ca pose des problemes ...
 *
 * @param string $key
 * @return string
 */
function importer_csv_nettoie_key($key)
{
    return translitteration($key);
    /*$accents=array('�','�','�','�','�',"�","�","'");
    	$accents_rep=array('e','e','e','a','u',"o","c","_");
    	return str_replace($accents,$accents_rep,$key);*/
}
开发者ID:jazzman346,项目名称:CAC_Site,代码行数:14,代码来源:importer_csv.php


示例3: reduire_mot

function reduire_mot($mot) {
	return strtr(
		translitteration(trim($mot)),
		'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
		'abcdefghijklmnopqrstuvwxyz'
		);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:7,代码来源:mots.php


示例4: action_snippet_exporte

function action_snippet_exporte(){
	global $auteur_session;
	$arg = _request('arg');
	$args = explode(":",$arg);
	$hash = _request('hash');
	$id_auteur = $auteur_session['id_auteur'];
	$redirect = _request('redirect');
	if ($redirect==NULL) $redirect="";
	include_spip("inc/securiser_action");
	if (verifier_action_auteur("snippet_exporte-$arg",$hash,$id_auteur)==TRUE) {
		$table = $args[0];
		$id = $args[1];
		
		$f = snippets_fond_exporter($table, false);
			
		if ($f) {
			include_spip('public/assembler');
			$out = recuperer_fond($f,array('id'=>intval($id)));
			//$out = preg_replace(",\n\n[\s]*(?=\n),","",$out);
			
			$filename=str_replace(":","_",$arg);
			if (preg_match(",<titre>(.*)</titre>,Uims",$out,$regs))
				$filename = preg_replace(',[^-_\w]+,', '_', trim(translitteration(textebrut(typo($regs[1])))));
			$extension = "xml";
			
			Header("Content-Type: text/xml; charset=".$GLOBALS['meta']['charset']);
			Header("Content-Disposition: attachment; filename=$filename.$extension");
			Header("Content-Length: ".strlen($out));
			echo $out;
			exit();
		}
	}	
	redirige_par_entete(str_replace("&amp;","&",urldecode($redirect)));
}
开发者ID:rhertzog,项目名称:lcs,代码行数:34,代码来源:snippet_exporte.php


示例5: plugins_afficher_liste_dist

function plugins_afficher_liste_dist($url_page,$liste_plugins, $liste_plugins_actifs, $dir_plugins=_DIR_PLUGINS,$afficher_un = 'afficher_plugin'){
	$get_infos = charger_fonction('get_infos','plugins');
	$ligne_plug = charger_fonction($afficher_un,'plugins');
	$liste_plugins = array_flip($liste_plugins);
	foreach(array_keys($liste_plugins) as $chemin) {
		if ($info = $get_infos($chemin, false, $dir_plugins))
			$liste_plugins[$chemin] = strtoupper(trim(typo(translitteration(unicode2charset(html2unicode($info['nom']))))));
	}
	asort($liste_plugins);
	$exposed = urldecode(_request('plugin'));

	$block_par_lettre = false;//count($liste_plugins)>10;
	$fast_liste_plugins_actifs = array_flip($liste_plugins_actifs);
	$res = '';
	$block = '';
	$initiale = '';
	$block_actif = false;
	foreach($liste_plugins as $plug => $nom){
		if (($i=substr($nom,0,1))!==$initiale){
			$res .= $block_par_lettre ? affiche_block_initiale($initiale,$block,$block_actif): $block;
			$initiale = $i;
			$block = '';
			$block_actif = false;
		}
		// le rep suivant
		$actif = @isset($fast_liste_plugins_actifs[$plug]);
		$block_actif = $block_actif | $actif;
		$expose = ($exposed AND ($exposed==$plug OR $exposed==$dir_plugins . $plug OR $exposed==substr($dir_plugins,strlen(_DIR_RACINE)) . $plug));
		$block .= $ligne_plug($url_page, $plug, $actif, $expose, "item", $dir_plugins)."\n";
	}
	$res .= $block_par_lettre ? affiche_block_initiale($initiale,$block,$block_actif): $block;
	$class = basename($dir_plugins);
	return $res ? "<ul class='liste-items plugins $class'>$res</ul>" : "";
}
开发者ID:rhertzog,项目名称:lcs,代码行数:34,代码来源:afficher_liste.php


示例6: url_nettoyer

function url_nettoyer($titre,$longueur_maxi,$longueur_min=0,$separateur='-',$filtre=''){
	if (!defined('_TRANSLITTERER_URL')) define('_TRANSLITTERER_URL', true);
	
	$titre = supprimer_tags(supprimer_numero(extraire_multi($titre)));
	$url = corriger_caracteres($titre);
	
	
	if (_TRANSLITTERER_URL) $url = translitteration($url);

	if ($filtre)
		$url = $filtre($url);

	// on va convertir tous les caracteres de ponctuation et espaces
	// a l'exception de l'underscore (_), car on veut le conserver dans l'url
	$url = str_replace('_', chr(7), $url);
	$url = @preg_replace(',[[:punct:][:space:]]+,u', ' ', $url);
	$url = str_replace(chr(7), '_', $url);

	// S'il reste trop de caracteres non latins, les gerer comme wikipedia
	// avec rawurlencode :
	if (_TRANSLITTERER_URL && preg_match_all(",[^a-zA-Z0-9 _]+,", $url, $r, PREG_SET_ORDER)) {
		foreach ($r as $regs) {
			$url = substr_replace($url, rawurlencode($regs[0]),
				strpos($url, $regs[0]), strlen($regs[0]));
		}
	}

	// S'il reste trop peu, renvoyer vide
	if (strlen($url) < $longueur_min)
		return '';

	// Sinon couper les mots et les relier par des $separateur
	if (_TRANSLITTERER_URL) $mots = preg_split(",[^a-zA-Z0-9_%]+,", $url); 
	else $mots = preg_split(",[\s]+,", $url);
	$url = '';
	foreach ($mots as $mot) {
		if (!strlen($mot)) continue;
		$url2 = $url.$separateur.$mot;

		// Si on depasse $longueur_maxi caracteres, s'arreter
		// ne pas compter 3 caracteres pour %E9 mais un seul
		$long = preg_replace(',%.,', '', $url2);
		if (strlen($long) > $longueur_maxi) {
			break;
		}

		$url = $url2;
	}
	$url = substr($url, 1);

	// On enregistre en utf-8 dans la base
	$url = rawurldecode($url);

	if (strlen($url) < $longueur_min)
		return '';
	return $url;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:57,代码来源:editer_url.php


示例7: dump_nom_fichier

/**
 * Nom du fichier de sauvegarde
 * la fourniture de l'extension permet de verifier que le nom n'existe pas deja
 *
 * @param string $dir
 * @param string $extension
 * @return string
 */
function dump_nom_fichier($dir, $extension = 'sqlite')
{
    include_spip('inc/texte');
    $site = isset($GLOBALS['meta']['nom_site']) ? preg_replace(array(",\\W,is", ",_(?=_),", ",_\$,"), array("_", "", ""), couper(translitteration(trim($GLOBALS['meta']['nom_site'])), 30, "")) : 'spip';
    $site .= '_' . date('Ymd');
    $nom = $site;
    $cpt = 0;
    while (file_exists($dir . $nom . ".{$extension}")) {
        $nom = $site . sprintf('_%03d', ++$cpt);
    }
    return $nom . ".{$extension}";
}
开发者ID:genma,项目名称:spip_ynh,代码行数:20,代码来源:dump.php


示例8: expression_recherche

function expression_recherche($recherche, $options)
{
    $u = $GLOBALS['meta']['pcre_u'];
    include_spip('inc/charsets');
    $recherche = trim(translitteration($recherche));
    $is_preg = false;
    if (substr($recherche, 0, 1) == '/' and substr($recherche, -1, 1) == '/') {
        // c'est une preg
        $preg = $recherche . $options['preg_flags'];
        $is_preg = true;
    } else {
        // s'il y a plusieurs mots il faut les chercher tous : oblige REGEXP
        if (preg_match(",\\s+," . $u, $recherche)) {
            $is_preg = true;
            $recherche = preg_replace(',\\s+,' . $u, '|', $recherche);
        }
        $preg = '/' . str_replace('/', '\\/', $recherche) . '/' . $options['preg_flags'];
    }
    // Si la chaine est inactive, on va utiliser LIKE pour aller plus vite
    // ou si l'expression reguliere est invalide
    if (!$is_preg or @preg_match($preg, '') === FALSE) {
        $methode = 'LIKE';
        $u = $GLOBALS['meta']['pcre_u'];
        // eviter les parentheses et autres caractères qui interferent avec pcre par la suite (dans le preg_match_all) s'il y a des reponses
        $recherche = str_replace(array('(', ')', '?', '[', ']', '+', '*', '/'), array('\\(', '\\)', '[?]', '\\[', '\\]', '\\+', '\\*', '\\/'), $recherche);
        $recherche_mod = $recherche;
        // echapper les % et _
        $q = str_replace(array('%', '_'), array('\\%', '\\_'), trim($recherche));
        // les expressions entre " " sont un mot a chercher tel quel
        // -> on remplace les espaces par un _ et on enleve les guillemets
        if (preg_match(',["][^"]+["],Uims', $q, $matches)) {
            foreach ($matches as $match) {
                // corriger le like dans le $q
                $word = preg_replace(",\\s+,Uims", "_", $match);
                $word = trim($word, '"');
                $q = str_replace($match, $word, $q);
                // corriger la regexp
                $word = preg_replace(",\\s+,Uims", "[\\s]", $match);
                $word = trim($word, '"');
                $recherche_mod = str_replace($match, $word, $recherche_mod);
            }
        }
        $q = sql_quote("%" . preg_replace(",\\s+," . $u, "%", $q) . "%");
        $preg = '/' . preg_replace(",\\s+," . $u, ".+", trim($recherche_mod)) . '/' . $options['preg_flags'];
    } else {
        $methode = 'REGEXP';
        $q = sql_quote(trim($recherche, '/'));
    }
    return array($methode, $q, $preg);
}
开发者ID:nursit,项目名称:SPIP,代码行数:50,代码来源:rechercher.php


示例9: plugins_afficher_liste_dist

/**
 * Afficher une liste de plugins dans l'interface
 * http://doc.spip.org/@affiche_liste_plugins
 *
 * @param string $url_page
 * @param array $liste_plugins
 * @param array $liste_plugins_checked
 * @param array $liste_plugins_actifs
 * @param string $dir_plugins
 * @param string $afficher_un
 * @return string
 */
function plugins_afficher_liste_dist($url_page, $liste_plugins, $liste_plugins_checked, $liste_plugins_actifs, $dir_plugins = _DIR_PLUGINS, $afficher_un = 'afficher_plugin')
{
    $get_infos = charger_fonction('get_infos', 'plugins');
    $ligne_plug = charger_fonction($afficher_un, 'plugins');
    $all_infos = $get_infos($liste_plugins, false, $dir_plugins);
    $all_infos = pipeline('filtrer_liste_plugins', array('args' => array('liste_plugins' => $liste_plugins, 'liste_plugins_checked' => $liste_plugins_checked, 'liste_plugins_actifs' => $liste_plugins_actifs, 'dir_plugins' => $dir_plugins), 'data' => $all_infos));
    $liste_plugins = array_flip($liste_plugins);
    foreach ($liste_plugins as $chemin => $v) {
        // des plugins ont pu etre enleves de la liste par le pipeline. On en tient compte.
        if (isset($all_infos[$chemin])) {
            $liste_plugins[$chemin] = strtoupper(trim(typo(translitteration(unicode2charset(html2unicode($all_infos[$chemin]['nom']))))));
        } else {
            unset($liste_plugins[$chemin]);
        }
    }
    asort($liste_plugins);
    $exposed = urldecode(_request('plugin'));
    $block_par_lettre = false;
    //count($liste_plugins)>10;
    $fast_liste_plugins_actifs = array();
    $fast_liste_plugins_checked = array();
    if (is_array($liste_plugins_actifs)) {
        $fast_liste_plugins_actifs = array_flip($liste_plugins_actifs);
    }
    if (is_array($liste_plugins_checked)) {
        $fast_liste_plugins_checked = array_flip($liste_plugins_checked);
    }
    $res = '';
    $block = '';
    $initiale = '';
    $block_actif = false;
    foreach ($liste_plugins as $plug => $nom) {
        if (($i = substr($nom, 0, 1)) !== $initiale) {
            $res .= $block_par_lettre ? affiche_block_initiale($initiale, $block, $block_actif) : $block;
            $initiale = $i;
            $block = '';
            $block_actif = false;
        }
        // le rep suivant
        $actif = isset($fast_liste_plugins_actifs[$plug]);
        $checked = isset($fast_liste_plugins_checked[$plug]);
        $block_actif = $block_actif | $actif;
        $expose = ($exposed and ($exposed == $plug or $exposed == $dir_plugins . $plug or $exposed == substr($dir_plugins, strlen(_DIR_RACINE)) . $plug));
        $block .= $ligne_plug($url_page, $plug, $checked, $actif, $expose, "item", $dir_plugins) . "\n";
    }
    $res .= $block_par_lettre ? affiche_block_initiale($initiale, $block, $block_actif) : $block;
    $class = basename($dir_plugins);
    return $res ? "<ul class='liste-items plugins {$class}'>{$res}</ul>" : "";
}
开发者ID:genma,项目名称:spip_ynh,代码行数:61,代码来源:afficher_liste.php


示例10: inc_exporter_csv_dist

function inc_exporter_csv_dist($titre, $resource, $delim=',', $entetes = null,$envoyer = true){

	$filename = preg_replace(',[^-_\w]+,', '_', translitteration(textebrut(typo($titre))));
	
	if ($delim == 'TAB') $delim = "\t";
	if (!in_array($delim,array(',',';',"\t")))
		$delim = ",";

	$charset = $GLOBALS['meta']['charset'];
	$importer_charset = null;
	if ($delim == ',')
		$extension = 'csv';
	else {
		$extension = 'xls';
		# Excel n'accepte pas l'utf-8 ni les entites html... on transcode tout ce qu'on peut
		$importer_charset = $charset = 'iso-8859-1';
	}
	$filename = "$filename.$extension";

	if ($entetes AND is_array($entetes) AND count($entetes))
		$output = exporter_csv_ligne($entetes,$delim,$importer_charset);

	// on passe par un fichier temporaire qui permet de ne pas saturer la memoire
	// avec les gros exports
	$fichier = sous_repertoire(_DIR_CACHE,"export") . $filename;
	$fp = fopen($fichier, 'w');
	$length = fwrite($fp, $output);

	while ($row=is_array($resource)?array_shift($resource):sql_fetch($resource)){
		$output = exporter_csv_ligne($row,$delim,$importer_charset);
		$length += fwrite($fp, $output);
	}
	fclose($fp);

	if ($envoyer) {
		Header("Content-Type: text/comma-separated-values; charset=$charset");
		Header("Content-Disposition: attachment; filename=$filename");
		//non supporte
		//Header("Content-Type: text/plain; charset=$charset");
		Header("Content-Length: $length");
		ob_clean();
    flush();
    readfile($fichier);
	}

	return $fichier;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:47,代码来源:exporter_csv.php


示例11: copier_document

function copier_document($ext, $orig, $source) {

	$orig = preg_replace(',\.\.+,', '.', $orig); // pas de .. dans le nom du doc
	$dir = creer_repertoire_documents($ext);
	$dest = preg_replace("/[^.=\w-]+/", "_",
			translitteration(preg_replace("/\.([^.]+)$/", "", 
						      preg_replace("/<[^>]*>/", '', basename($orig)))));

	// ne pas accepter de noms de la forme -r90.jpg qui sont reserves
	// pour les images transformees par rotation (action/documenter)
	$dest = preg_replace(',-r(90|180|270)$,', '', $dest);

	// Si le document "source" est deja au bon endroit, ne rien faire
	if ($source == ($dir . $dest . '.' . $ext))
		return $source;

	// sinon tourner jusqu'a trouver un numero correct
	$n = 0;
	while (@file_exists($newFile = $dir . $dest .($n++ ? ('-'.$n) : '').'.'.$ext));

	return deplacer_fichier_upload($source, $newFile);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:22,代码来源:getdocument.php


示例12: action_exporter

function action_exporter()
{
    //global $auteur_session;
    $arg = _request('arg');
    $args = explode(":", $arg);
    $hash = _request('hash');
    //$id_auteur = $auteur_session['id_auteur'];
    $redirect = _request('redirect');
    if ($redirect == NULL) {
        $redirect = "";
    }
    //include_spip("inc/securiser_action");
    //if (verifier_action_auteur("snippet_exporte-$arg",$hash,$id_auteur)==TRUE) {
    $table = array_shift($args);
    $id = $args;
    $f = snippets_fond_exporter($table, false);
    spip_log('f ' . $f, 'export');
    if ($f) {
        include_spip('public/assembler');
        $out = recuperer_fond($f, array('id' => $id));
        //$out = preg_replace(",\n\n[\s]*(?=\n),","",$out);
        // $filename=str_replace(":","_",$arg);
        $today = date(Ymd);
        $filename = $table . '_export_' . $today;
        if (preg_match(",<titre>(.*)</titre>,Uims", $out, $regs)) {
            $filename = preg_replace(',[^-_\\w]+,', '_', trim(translitteration(textebrut(typo($regs[1])))));
        }
        $extension = "csv";
        Header("Content-Type: text/csv; charset=" . $GLOBALS['meta']['charset']);
        Header("Content-Disposition: attachment; filename={$filename}.{$extension}");
        Header("Content-Length: " . strlen($out));
        echo $out;
        exit;
        //	}
    }
    redirige_par_entete(str_replace("&amp;", "&", urldecode($redirect)));
}
开发者ID:rougerose,项目名称:vacarme_numeros,代码行数:37,代码来源:exporter.php


示例13: importer_csv_nettoie_key

/**
 * enlever les accents des cles presentes dans le head,
 * sinon ca pose des problemes ...
 *
 * @param string $key
 * @return string
 */
function importer_csv_nettoie_key($key)
{
    return translitteration($key);
}
开发者ID:JLuc,项目名称:SPIP,代码行数:11,代码来源:importer_csv.php


示例14: joindre_liste_contenu_tailles_archive

/**
 * Lister les fichiers contenus dans un zip
 *
 * @param array $files
 *    La liste des fichiers
 * @return string $res
 *    La liste HTML des fichiers <li>...</li>
 */
function joindre_liste_contenu_tailles_archive($files)
{
    include_spip('inc/charsets');
    # pour le nom de fichier
    $res = '';
    if (is_array($files)) {
        foreach ($files as $nom => $file) {
            $nom = translitteration($nom);
            $date = date_interface(date("Y-m-d H:i:s", $file['mtime']));
            $taille = taille_en_octets($file['size']);
            $res .= "<li title=\"" . attribut_html($title) . "\"><b>{$nom}</b> &ndash; {$taille}<br />&nbsp; {$date}</li>\n";
        }
    }
    return $res;
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:23,代码来源:joindre_document.php


示例15: fixer_fichier_upload

/**
 * Tester le type de document
 *
 * - le document existe et n'est pas de taille 0 ?
 * - interdit a l'upload ?
 * - quelle extension dans spip_types_documents ?
 * - est-ce "inclus" comme une image ?
 *
 * Le zipper si necessaire
 *
 * @param array $file
 *     Au format $_FILES
 * @param string $mode
 *     Mode d'inclusion du fichier, si connu
 * @return array
 */
function fixer_fichier_upload($file, $mode = '')
{
    /**
     * On vérifie que le fichier existe et qu'il contient quelque chose
     */
    if (is_array($row = verifier_upload_autorise($file['name'], $mode))) {
        if (!isset($row['autozip'])) {
            $row['fichier'] = copier_document($row['extension'], $file['name'], $file['tmp_name']);
            /**
             * On vérifie que le fichier a une taille
             * si non, on le supprime et on affiche une erreur
             */
            if ($row['fichier'] && !($taille = @intval(filesize(get_spip_doc($row['fichier']))))) {
                spip_log("Echec copie du fichier " . $file['tmp_name'] . " (taille de fichier indéfinie)");
                spip_unlink(get_spip_doc($row['fichier']));
                return _T('medias:erreur_copie_fichier', array('nom' => $file['tmp_name']));
            } else {
                return $row;
            }
        } else {
            unset($row['autozip']);
            $ext = 'zip';
            if (!($tmp_dir = tempnam(_DIR_TMP, 'tmp_upload'))) {
                return false;
            }
            spip_unlink($tmp_dir);
            @mkdir($tmp_dir);
            include_spip('inc/charsets');
            $tmp = $tmp_dir . '/' . translitteration($file['name']);
            $file['name'] .= '.' . $ext;
            # conserver l'extension dans le nom de fichier, par exemple toto.js => toto.js.zip
            // deplacer le fichier tmp_name dans le dossier tmp
            deplacer_fichier_upload($file['tmp_name'], $tmp, true);
            include_spip('inc/pclzip');
            $source = _DIR_TMP . basename($tmp_dir) . '.' . $ext;
            $archive = new PclZip($source);
            $v_list = $archive->create($tmp, PCLZIP_OPT_REMOVE_PATH, $tmp_dir, PCLZIP_OPT_ADD_PATH, '');
            effacer_repertoire_temporaire($tmp_dir);
            if (!$v_list) {
                spip_log("Echec creation du zip ");
                return false;
            }
            $row['fichier'] = copier_document($row['extension'], $file['name'], $source);
            spip_unlink($source);
            /**
             * On vérifie que le fichier a une taille
             * si non, on le supprime et on affiche une erreur
             */
            if ($row['fichier'] && !($taille = @intval(filesize(get_spip_doc($row['fichier']))))) {
                spip_log("Echec copie du fichier " . $file['tmp_name'] . " (taille de fichier indéfinie)");
                spip_unlink(get_spip_doc($row['fichier']));
                return _T('medias:erreur_copie_fichier', array('nom' => $file['tmp_name']));
            } else {
                return $row;
            }
        }
    } else {
        return $row;
    }
    // retourner le message d'erreur
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:77,代码来源:ajouter_documents.php


示例16: ancre_url

function ancre_url($url, $ancre)
{
    // lever l'#ancre
    if (preg_match(',^([^#]*)(#.*)$,', $url, $r)) {
        $url = $r[1];
    }
    if (preg_match('/[^-_a-zA-Z0-9]+/S', $ancre)) {
        if (!function_exists('translitteration')) {
            include_spip('inc/charsets');
        }
        $ancre = preg_replace(array('/^[^-_a-zA-Z0-9]+/', '/[^-_a-zA-Z0-9]/'), array('', '-'), translitteration($ancre));
    }
    return $url . (strlen($ancre) ? '#' . $ancre : '');
}
开发者ID:phenix-factory,项目名称:SPIP,代码行数:14,代码来源:utils.php


示例17: expression_recherche

function expression_recherche($recherche, $options)
{
    // ne calculer qu'une seule fois l'expression par hit
    // (meme si utilisee dans plusieurs boucles)
    static $expression = array();
    $key = serialize(array($recherche, $options['preg_flags']));
    if (isset($expression[$key])) {
        return $expression[$key];
    }
    $u = $GLOBALS['meta']['pcre_u'];
    if ($u and strpos($options['preg_flags'], $u) === false) {
        $options['preg_flags'] .= $u;
    }
    include_spip('inc/charsets');
    $recherche = trim($recherche);
    $is_preg = false;
    if (substr($recherche, 0, 1) == '/' and substr($recherche, -1, 1) == '/') {
        // c'est une preg
        $recherche_trans = translitteration($recherche);
        $preg = $recherche_trans . $options['preg_flags'];
        $is_preg = true;
    } else {
        // s'il y a plusieurs mots il faut les chercher tous : oblige REGEXP,
        // sauf ceux de moins de 4 lettres (on supprime ainsi 'le', 'les', 'un',
        // 'une', 'des' ...)
        // attention : plusieurs mots entre guillemets sont a rechercher tels quels
        $recherche_trans = $recherche_mod = $recherche;
        // les expressions entre " " sont un mot a chercher tel quel
        // -> on remplace les espaces par un \x1 et on enleve les guillemets
        if (preg_match(',["][^"]+["],Uims', $recherche_mod, $matches)) {
            foreach ($matches as $match) {
                $word = preg_replace(",\\s+,Uims", "", $match);
                $word = trim($word, '"');
                $recherche_mod = str_replace($match, $word, $recherche_mod);
            }
        }
        if (preg_match(",\\s+," . $u, $recherche_mod)) {
            $is_preg = true;
            $recherche_inter = '|';
            $recherche_mots = explode(' ', $recherche_mod);
            $min_long = defined('_RECHERCHE_MIN_CAR') ? _RECHERCHE_MIN_CAR : 4;
            foreach ($recherche_mots as $mot) {
                if (strlen($mot) >= $min_long) {
                    // echapper les caracteres de regexp qui sont eventuellement dans la recherche
                    $recherche_inter .= preg_quote($mot) . ' ';
                }
            }
            $recherche_inter = str_replace("", '\\s', $recherche_inter);
            // mais on cherche quand même l'expression complète, même si elle
            // comporte des mots de moins de quatre lettres
            $recherche = rtrim(preg_quote($recherche) . preg_replace(',\\s+,' . $u, '|', $recherche_inter), '|');
            $recherche_trans = translitteration($recherche);
        }
        $preg = '/' . str_replace('/', '\\/', $recherche_trans) . '/' . $options['preg_flags'];
    }
    // Si la chaine est inactive, on va utiliser LIKE pour aller plus vite
    // ou si l'expression reguliere est invalide
    if (!$is_preg or @preg_match($preg, '') === FALSE) {
        $methode = 'LIKE';
        $u = $GLOBALS['meta']['pcre_u'];
        // echapper les % et _
        $q = str_replace(array('%', '_'), array('\\%', '\\_'), trim($recherche));
        // eviter les parentheses et autres caractères qui interferent avec pcre par la suite (dans le preg_match_all) s'il y a des reponses
        $recherche = preg_quote($recherche);
        $recherche_trans = translitteration($recherche);
        $recherche_mod = $recherche_trans;
        // les expressions entre " " sont un mot a chercher tel quel
        // -> on remplace les espaces par un _ et on enleve les guillemets
        // corriger le like dans le $q
        if (preg_match(',["][^"]+["],Uims', $q, $matches)) {
            foreach ($matches as $match) {
                $word = preg_replace(",\\s+,Uims", "_", $match);
                $word = trim($word, '"');
                $q = str_replace($match, $word, $q);
            }
        }
        // corriger la regexp
        if (preg_match(',["][^"]+["],Uims', $recherche_mod, $matches)) {
            foreach ($matches as $match) {
                $word = preg_replace(",\\s+,Uims", "[\\s]", $match);
                $word = trim($word, '"');
                $recherche_mod = str_replace($match, $word, $recherche_mod);
            }
        }
        $q = sql_quote("%" . preg_replace(",\\s+," . $u, "%", $q) . "%");
        $preg = '/' . preg_replace(",\\s+," . $u, ".+", trim($recherche_mod)) . '/' . $options['preg_flags'];
    } else {
        $methode = 'REGEXP';
        $q = sql_quote(trim($recherche, '/'));
    }
    // tous les caracteres transliterables de $q sont remplaces par un joker
    // permet de matcher en SQL meme si on est sensible aux accents (SQLite)
    $q_t = $q;
    for ($i = 0; $i < spip_strlen($q); $i++) {
        $char = spip_substr($q, $i, 1);
        if (!is_ascii($char) and $char_t = translitteration($char) and $char_t !== $char) {
            $q_t = str_replace($char, $is_preg ? "." : "_", $q_t);
        }
    }
    $q = $q_t;
//.........这里部分代码省略.........
开发者ID:JLuc,项目名称:SPIP,代码行数:101,代码来源:rechercher.php


示例18: cfg_copier_document

/**
 * Copier un document
 * 
 * @param string $ext    L'extension du fichier
 * @param string $dest   le nom sous lequel le sauvegarder
 * @param string $source le fichier sur le serveur (/var/tmp/xyz34)
 * @param string $dans   Où le copier
 * @return string
 */
function cfg_copier_document($ext, $dest, $source, $dans='_cfg') {

	$dest = preg_replace(',\.\.+,', '.', $dest); // pas de .. dans le nom du doc
	$dir = cfg_creer_repertoire_cfg($dans);
	$dest = preg_replace("/[^._=-\w\d]+/", "_", 
			translitteration(preg_replace("/\.([^.]+)$/", "", 
						      preg_replace("/<[^>]*>/", '', basename($dest)))));

	// ne pas accepter de noms de la forme -r90.jpg qui sont reserves
	// pour les images transformees par rotation (action/documenter)
	$dest = preg_replace(',-r(90|180|270)$,', '', $dest);
	
	$newFile = $dir . $dest .'.'.$ext;

	return _COMPAT_CFG_192 ? cfg_deplacer_fichier_upload($source, $newFile) : deplacer_fichier_upload($source, $newFile);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:25,代码来源:cfg_fichier.php


示例19: translitteration_complexe

function translitteration_complexe($texte)
{
    return translitteration($texte, 'AUTO', 'complexe');
}
开发者ID:nyimbi,项目名称:legalcase,代码行数:4,代码来源:inc_charsets.php


示例20: afficher_liste_plugins_distants

function afficher_liste_plugins_distants($liste){
	$res = "";
	if (!$liste) return "";
	
	$menu = array();
	$compte = 0;

	$afficher_plugin_distant = charger_fonction('afficher_plugin_distant','plugins');
	$url_page = self();
	foreach ($liste as $url => $info) {
		$titre = $info[0];
		$titre = strtoupper(trim(typo(translitteration(unicode2charset(html2unicode($titre))))));
		$menu[$titre] = $afficher_plugin_distant($url_page, $url, $info, _request('plugin')==$url);
	}
	ksort($menu);

	$res .=
		"<h3>"._T('plugins_compte',array('count' => count($menu)))."</h3>"
	  . '<p>'._T('plugin_info_automatique_select',array('rep'=>joli_repertoire(_DIR_PLUGINS_AUTO))).'</p>'
		. "<ul class='liste-items plugins distants'>".join("\n",$menu)."</ul>";

	return $res;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:23,代码来源:charger_plugin.php



注:本文中的translitteration函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP trbasic函数代码示例发布时间:2022-05-23
下一篇:
PHP transliterator_transliterate函数代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap