本文整理汇总了PHP中charset2unicode函数的典型用法代码示例。如果您正苦于以下问题:PHP charset2unicode函数的具体用法?PHP charset2unicode怎么用?PHP charset2unicode使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了charset2unicode函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: version_texte
function version_texte($texte){
$texte = charset2unicode($texte);
// accentuer le texte avant de suprimer les tags
$texte = strtr($texte, array('&'=>'&', '"'=>'"', '<'=>'<', '>'=>'>', 'è'=>'è', 'é'=>'é', 'à' => 'à') );
$cherche = array (
/*01*/ '@<script[^>]*?>.*?</script>@si', // Supprime le javascript
/*02*/ '@<style[^>]*?>.*?</style>@si', // Supprime les styles inline
/*03*/ ",<link[^>]*>,Uims", // les css
/*04*/ ",<img[^>]*alt=['\"]([^'\"]*)['\"][^>]*>,Uims", // les images
);
$remplace = array (
/*01*/ '',
/*02*/ '',
/*03*/ '',
/*04*/ '[\1]',
);
// voir : TODO.txt
$texte = preg_replace($cherche, $remplace, $texte);
return $texte;
}
示例2: typographie_fr_dist
function typographie_fr_dist($letexte)
{
static $trans;
// Nettoyer 160 = nbsp ; 187 = raquo ; 171 = laquo ; 176 = deg ;
// 147 = ldquo; 148 = rdquo; ' = zouli apostrophe
if (!$trans) {
$trans = array("'" => "’", " " => "~", "»" => "»", "«" => "«", "”" => "”", "“" => "“", "°" => "°");
$chars = array(160 => '~', 187 => '»', 171 => '«', 148 => '”', 147 => '“', 176 => '°');
$chars_trans = array_keys($chars);
$chars = array_values($chars);
$chars_trans = implode(' ', array_map('chr', $chars_trans));
$chars_trans = unicode2charset(charset2unicode($chars_trans, 'iso-8859-1', 'forcer'));
$chars_trans = explode(" ", $chars_trans);
foreach ($chars as $k => $r) {
$trans[$chars_trans[$k]] = $r;
}
}
$letexte = strtr($letexte, $trans);
$cherche1 = array('/((?:^|[^\\#0-9a-zA-Z\\&])[\\#0-9a-zA-Z]*)\\;/S', '/»| --?,|(?::| %)(?:\\W|$)/S', '/([^[<(!?.])([!?][!?\\.]*)/iS', '/«|(?:M(?:M?\\.|mes?|r\\.?)|[MnN]°) /S');
$remplace1 = array('\\1~;', '~\\0', '\\1~\\2', '\\0~');
$letexte = preg_replace($cherche1, $remplace1, $letexte);
$letexte = preg_replace("/ *~+ */S", "~", $letexte);
$cherche2 = array('/([^-\\n]|^)--([^-]|$)/S', ',(http|https|ftp|mailto)~((://[^"\'\\s\\[\\]\\}\\)<>]+)~([?]))?,S', '/~/');
$remplace2 = array('\\1—\\2', '\\1\\3\\4', ' ');
$letexte = preg_replace($cherche2, $remplace2, $letexte);
return $letexte;
}
示例3: exporter_csv_ligne
/**
* Exporter une ligne complete au format CSV, avec delimiteur fourni
* @param array $ligne
* @param string $delim
* @return string
*/
function exporter_csv_ligne($ligne, $delim = ',', $importer_charset = null) {
$output = join($delim, array_map('exporter_csv_champ', $ligne))."\r\n";
if ($importer_charset){
$output = unicode2charset(html2unicode(charset2unicode($output)), $importer_charset);
}
return $output;
}
示例4: pdf_first_clean
function pdf_first_clean($texte){
// Cette focntion est appelé après la fonction propre
// $texte = ereg_replace("<p class[^>]*>", "<P>", $texte);
//Translation des codes iso
// PB avec l'utilisation de <code>
$trans = get_html_translation_table(HTML_ENTITIES);
$texte = preg_replace(',<!-- .* -->,msU', '', $texte); // supprimer les remarques HTML (du Couteau Suisse ?)
$trans = array_flip($trans);
$trans["<br />\n"] = "<BR>"; // Pour éviter que le \n ne se tranforme en espace dans les <DIV class=spip_code> (TT, tag SPIP : code)
$trans['°'] = "°";
$trans["œ"] = "oe";
$trans["‎"] = "";
$trans["–"] = "-";
$trans["‘"] = "'";
$trans["’"] = "'";
$trans["“"] = "\"";
$trans["”"] = "\"";
$trans["…"] = "...";
$trans["€"] = "Euros";
$trans["û"] = "û";
$trans['->'] = '-»';
$trans['<-'] = '«-';
$trans[' '] = ' ';
// certains titles font paniquer l'analyse
$texte = preg_replace(',title=".*",msU', 'title=""', $texte);
$texte = unicode2charset(charset2unicode($texte), 'iso-8859-1'); // repasser tout dans un charset acceptable par export PDF
$texte = strtr($texte, $trans);
return $texte;
}
示例5: cs_test_spam
function cs_test_spam(&$spam, &$texte, &$test) {
foreach($spam[0] as $m) $test |= strpos($texte, $m)!==false;
if(!$test && $spam[1]) $test = preg_match($spam[1], $texte);
if(!$test && $spam[2]) {
include_spip('inc/charsets');
$test = preg_match($spam[2], charset2unicode($texte));
}
return $test;
}
示例6: crayons_json_encode
function crayons_json_encode($v)
{
if ($GLOBALS['meta']['charset'] == 'utf-8' and function_exists('json_encode')) {
return json_encode($v);
}
$v = crayons_var2js($v);
if ($GLOBALS['meta']['charset'] != 'utf-8') {
include_spip('inc/charsets');
$v = charset2unicode($v);
}
return $v;
}
示例7: type_urls_URL_objet_191_exec
function type_urls_URL_objet_191_exec() {
global $type_urls;
$type = _request('type_objet');
$table = $type.($type=='syndic'?'':'s');
$id_objet = intval(_request('id_objet'));
$r0 = "SELECT url_propre, titre FROM spip_$table WHERE id_$type=$id_objet";
$r = spip_query($r0);
if ($r AND $r = spip_fetch_array($r)) { $url_1 = $r['url_propre']; $titre = $r['titre']; }
if(!function_exists($fct = 'generer_url_'.($type=='syndic'?'site':$type))) {
if($f = include_spip('urls/'.$type_urls, false))
include_once($f);
}
$url = function_exists($fct)?$fct($id_objet):'??';
$r = spip_query($r0);
if ($r AND $r = spip_fetch_array($r)) $url_2 = $r['url_propre'];
// url propre en base || titre || url complete || type d'URLs || URL recalculee
include_spip('inc/charsets');
echo _request('format')=='iframe'
?"<span style='font-family:Verdana,Arial,Sans,sans-serif; font-size:10px;'>[<a href='../$url' title='$url' target='_blank'>"._T('couteau:urls_propres_lien').'</a>]</span>'
:$url_1.'||'.charset2unicode($titre).'||'.$url.'||'.$type_urls.'||'.$url_2;
}
示例8: couper
function couper($texte, $taille = 50, $suite = ' (...)')
{
if (!($length = strlen($texte)) or $taille <= 0) {
return '';
}
$offset = 400 + 2 * $taille;
while ($offset < $length and strlen(preg_replace(",<[^>]+>,Uims", "", substr($texte, 0, $offset))) < $taille) {
$offset = 2 * $offset;
}
if ($offset < $length && ($p_tag_ouvrant = strpos($texte, '<', $offset)) !== NULL) {
$p_tag_fermant = strpos($texte, '>', $offset);
if ($p_tag_fermant && $p_tag_fermant < $p_tag_ouvrant) {
$offset = $p_tag_fermant + 1;
}
// prolonger la coupe jusqu'au tag fermant suivant eventuel
}
$texte = substr($texte, 0, $offset);
/* eviter de travailler sur 10ko pour extraire 150 caracteres */
// on utilise les \r pour passer entre les gouttes
$texte = str_replace("\r\n", "\n", $texte);
$texte = str_replace("\r", "\n", $texte);
// sauts de ligne et paragraphes
$texte = preg_replace("/\n\n+/", "\r", $texte);
$texte = preg_replace("/<(p|br)( [^>]*)?" . ">/", "\r", $texte);
// supprimer les traits, lignes etc
$texte = preg_replace("/(^|\r|\n)(-[-#\\*]*|_ )/", "\r", $texte);
// supprimer les tags
$texte = supprimer_tags($texte);
$texte = trim(str_replace("\n", " ", $texte));
$texte .= "\n";
// marquer la fin
// travailler en accents charset
$texte = unicode2charset(html2unicode($texte, true));
if (!function_exists('nettoyer_raccourcis_typo')) {
include_spip('inc/lien');
}
$texte = nettoyer_raccourcis_typo($texte);
// corriger la longueur de coupe
// en fonction de la presence de caracteres utf
if ($GLOBALS['meta']['charset'] == 'utf-8') {
$long = charset2unicode($texte);
$long = spip_substr($long, 0, max($taille, 1));
$nbcharutf = preg_match_all('/(&#[0-9]{3,5};)/S', $long, $matches);
$taille += $nbcharutf;
}
// couper au mot precedent
$long = spip_substr($texte, 0, max($taille - 4, 1));
$u = $GLOBALS['meta']['pcre_u'];
$court = preg_replace("/([^\\s][\\s]+)[^\\s]*\n?\$/" . $u, "\\1", $long);
$points = $suite;
// trop court ? ne pas faire de (...)
if (spip_strlen($court) < max(0.75 * $taille, 2)) {
$points = '';
$long = spip_substr($texte, 0, $taille);
$texte = preg_replace("/([^\\s][\\s]+)[^\\s]*\n?\$/" . $u, "\\1", $long);
// encore trop court ? couper au caractere
if (spip_strlen($texte) < 0.75 * $taille) {
$texte = $long;
}
} else {
$texte = $court;
}
if (strpos($texte, "\n")) {
// la fin est encore la : c'est qu'on n'a pas de texte de suite
$points = '';
}
// remettre les paragraphes
$texte = preg_replace("/\r+/", "\n\n", $texte);
// supprimer l'eventuelle entite finale mal coupee
$texte = preg_replace('/&#?[a-z0-9]*$/S', '', $texte);
return quote_amp(trim($texte)) . $points;
}
示例9: typo_fr
function typo_fr($letexte)
{
global $flag_strtr2;
static $trans;
// Nettoyer 160 = nbsp ; 187 = raquo ; 171 = laquo ; 176 = deg ; 147 = ldquo; 148 = rdquo
if (!$trans) {
$trans = array(" " => "~", "»" => "»", "«" => "«", "”" => "”", "“" => "“", "°" => "°");
$chars = array(160 => '~', 187 => '»', 171 => '«', 148 => '”', 147 => '“', 176 => '°');
$charset = read_meta('charset');
include_lcm('inc_charsets');
while (list($c, $r) = each($chars)) {
$c = unicode2charset(charset2unicode(chr($c), 'iso-8859-1', 'forcer'));
$trans[$c] = $r;
}
}
if ($flag_strtr2) {
$letexte = strtr($letexte, $trans);
} else {
reset($trans);
while (list($c, $r) = each($trans)) {
$letexte = str_replace($c, $r, $letexte);
}
}
$cherche1 = array('/((^|[^\\#0-9a-zA-Z\\&])[\\#0-9a-zA-Z]*)\\;/', '/»| --?,|:([^0-9]|$)/', '/([^<!?])([!?])/', '/«|(M(M?\\.|mes?|r\\.?)|[MnN]°) /');
$remplace1 = array('\\1~;', '~\\0', '\\1~\\2', '\\0~');
$letexte = ereg_remplace($cherche1, $remplace1, $letexte);
$letexte = preg_replace("/ *~+ */", "~", $letexte);
$cherche2 = array('/([^-\\n]|^)--([^-]|$)/', '/(http|https|ftp|mailto)~:/', '/~/');
$remplace2 = array('\\1—\\2', '\\1:', ' ');
$letexte = ereg_remplace($cherche2, $remplace2, $letexte);
return $letexte;
}
示例10: inc_traduire_dist
//.........这里部分代码省略.........
*
* @note
* Les couples clé/traductions déjà connus sont sauvés en interne
* dans les globales `i18n_${module}_${lang}` tel que `i18n_mots_es`
* et sont également sauvés dans la variable statique `deja_vu`
* de cette fonction.
*
* @uses charger_langue()
* @uses chercher_module_lang()
* @uses surcharger_langue()
*
* @param string $ori
* Clé de traduction, tel que `bouton_enregistrer` ou `mots:titre_mot`
* @param string $lang
* Code de langue, la traduction doit se faire si possible dans cette langue
* @return string
* Traduction demandée. Chaîne vide si aucune traduction trouvée.
**/
function inc_traduire_dist($ori, $lang)
{
static $deja_vu = array();
static $local = array();
if (isset($deja_vu[$lang][$ori]) and _request('var_mode') != 'traduction') {
return $deja_vu[$lang][$ori];
}
// modules demandes explicitement <xxx|yyy|zzz:code> cf MODULES_IDIOMES
if (strpos($ori, ':')) {
list($modules, $code) = explode(':', $ori, 2);
$modules = explode('|', $modules);
$ori_complet = $ori;
} else {
$modules = array('spip', 'ecrire');
$code = $ori;
$ori_complet = implode('|', $modules) . ':' . $ori;
}
$text = '';
$module_retenu = '';
// parcourir tous les modules jusqu'a ce qu'on trouve
foreach ($modules as $module) {
$var = "i18n_" . $module . "_" . $lang;
if (empty($GLOBALS[$var])) {
charger_langue($lang, $module);
// surcharges persos -- on cherche
// (lang/)local_xx.php et/ou (lang/)local.php ...
if (!isset($local['local_' . $lang])) {
// redéfinir la langue en cours pour les surcharges (chercher_langue a pu le changer)
$GLOBALS['idx_lang'] = $var;
// ... (lang/)local_xx.php
$local['local_' . $lang] = chercher_module_lang('local', $lang);
}
if ($local['local_' . $lang]) {
surcharger_langue($local['local_' . $lang]);
}
// ... puis (lang/)local.php
if (!isset($local['local'])) {
$local['local'] = chercher_module_lang('local');
}
if ($local['local']) {
surcharger_langue($local['local']);
}
}
if (isset($GLOBALS[$var][$code])) {
$module_retenu = $module;
$text = $GLOBALS[$var][$code];
break;
}
}
// Retour aux sources si la chaine est absente dans la langue cible ;
// on essaie d'abord la langue du site, puis a defaut la langue fr
$langue_retenue = $lang;
if (!strlen($text) and $lang !== _LANGUE_PAR_DEFAUT) {
if ($lang !== $GLOBALS['meta']['langue_site']) {
$text = inc_traduire_dist($ori, $GLOBALS['meta']['langue_site']);
$langue_retenue = !strlen($text) ? $GLOBALS['meta']['langue_site'] : '';
} else {
$text = inc_traduire_dist($ori, _LANGUE_PAR_DEFAUT);
$langue_retenue = !strlen($text) ? _LANGUE_PAR_DEFAUT : '';
}
}
// Supprimer la mention <NEW> ou <MODIF>
if (substr($text, 0, 1) === '<') {
$text = str_replace(array('<NEW>', '<MODIF>'), array(), $text);
}
// Si on n'est pas en utf-8, la chaine peut l'etre...
// le cas echeant on la convertit en entites html &#xxx;
if ((!isset($GLOBALS['meta']['charset']) or $GLOBALS['meta']['charset'] !== 'utf-8') and preg_match(',[\\x7f-\\xff],S', $text)) {
include_spip('inc/charsets');
$text = charset2unicode($text, 'utf-8');
}
if (_request('var_mode') == 'traduction') {
if ($text) {
$classe = 'debug-traduction' . ($module_retenu == 'ecrire' ? '-prive' : '');
$text = '<span lang=' . $langue_retenue . ' class=' . $classe . ' title=' . $ori_complet . '(' . $langue_retenue . ')>' . $text . '</span>';
$text = str_replace(array("{$module_retenu}:", "{$module_retenu}|"), array("*{$module_retenu}*:", "*{$module_retenu}*|"), $text);
}
} else {
$deja_vu[$lang][$ori] = $text;
}
return $text;
}
示例11: plugins_infos_plugin
function plugins_infos_plugin($desc, $plug = '', $dir_plugins = _DIR_PLUGINS)
{
include_spip('inc/xml');
$arbre = spip_xml_parse($desc);
$verifie_conformite = charger_fonction('verifie_conformite', 'plugins');
$verifie_conformite($plug, $arbre, $dir_plugins);
include_spip('inc/charsets');
// On renvoie la DTD utilisee
$ret['dtd'] = "plugin";
if (isset($arbre['categorie'])) {
$ret['categorie'] = trim(spip_xml_aplatit($arbre['categorie']));
}
if (isset($arbre['nom'])) {
$ret['nom'] = charset2unicode(spip_xml_aplatit($arbre['nom']));
}
if (isset($arbre['icon'])) {
$ret['logo'] = trim(spip_xml_aplatit($arbre['icon']));
}
if (isset($arbre['auteur'])) {
$ret['auteur'][] = trim(spip_xml_aplatit($arbre['auteur']));
}
// garder le 1er niveau en tableau mais traiter le multi possible
if (isset($arbre['licence'])) {
$ret['licence'][] = trim(spip_xml_aplatit($arbre['licence']));
}
if (isset($arbre['version'])) {
$ret['version'] = trim(spip_xml_aplatit($arbre['version']));
}
if (isset($arbre['version_base'])) {
$ret['schema'] = trim(spip_xml_aplatit($arbre['version_base']));
}
if (isset($arbre['etat'])) {
$ret['etat'] = trim(spip_xml_aplatit($arbre['etat']));
}
$ret['description'] = $ret['slogan'] = "";
if (isset($arbre['slogan'])) {
$ret['slogan'] = trim(spip_xml_aplatit($arbre['slogan']));
}
if (isset($arbre['description'])) {
$ret['description'] = trim(spip_xml_aplatit($arbre['description']));
}
if (isset($arbre['lien'])) {
$ret['documentation'] = trim(join(' ', $arbre['lien']));
if ($ret['documentation']) {
// le lien de doc doit etre une url et c'est tout
if (!preg_match(',^https?://,iS', $ret['documentation'])) {
$ret['documentation'] = "";
}
}
}
if (isset($arbre['options'])) {
$ret['options'] = $arbre['options'];
}
if (isset($arbre['fonctions'])) {
$ret['fonctions'] = $arbre['fonctions'];
}
if (isset($arbre['prefix'][0])) {
$ret['prefix'] = trim(array_pop($arbre['prefix']));
}
if (isset($arbre['install'])) {
$ret['install'] = $arbre['install'];
}
if (isset($arbre['meta'])) {
$ret['meta'] = trim(spip_xml_aplatit($arbre['meta']));
}
$necessite = info_plugin_normalise_necessite($arbre['necessite']);
$ret['compatibilite'] = isset($necessite['compatible']) ? $necessite['compatible'] : '';
$ret['necessite'] = $necessite['necessite'];
$ret['lib'] = $necessite['lib'];
$ret['utilise'] = info_plugin_normalise_utilise($arbre['utilise']);
$ret['procure'] = info_plugin_normalise_procure($arbre['procure']);
$ret['chemin'] = info_plugin_normalise_chemin($arbre['path']);
if (isset($arbre['pipeline'])) {
$ret['pipeline'] = $arbre['pipeline'];
}
$extraire_boutons = charger_fonction('extraire_boutons', 'plugins');
$les_boutons = $extraire_boutons($arbre);
$ret['menu'] = $les_boutons['bouton'];
$ret['onglet'] = $les_boutons['onglet'];
$ret['traduire'] = $arbre['traduire'];
if (isset($arbre['config'])) {
$ret['config'] = spip_xml_aplatit($arbre['config']);
}
if (isset($arbre['noisette'])) {
$ret['noisette'] = $arbre['noisette'];
}
if (isset($arbre['erreur'])) {
$ret['erreur'] = $arbre['erreur'];
if ($plug) {
spip_log("infos_plugin {$plug} " . @join(' ', $arbre['erreur']));
}
}
return $ret;
}
示例12: inc_traduire_dist
function inc_traduire_dist($ori, $lang) {
static $deja_vu = array();
if (isset($deja_vu[$lang][$ori]))
return $deja_vu[$lang][$ori];
// modules demandes explicitement <xxx/yyy/zzz:code>
if (strpos($ori,':')) {
list($modules,$code) = explode(':',$ori,2);
$modules = explode('/', $modules);
} else {
$modules = array('spip', 'ecrire');
$code = $ori;
}
$text = '';
// parcourir tous les modules jusqu'a ce qu'on trouve
foreach ($modules as $module) {
$var = "i18n_".$module."_".$lang;
if (empty($GLOBALS[$var])) {
charger_langue($lang, $module);
// surcharge perso -- on cherche (lang/)local_xx.php ...
if ($f = chercher_module_lang('local', $lang))
surcharger_langue($f);
// ... puis (lang/)local.php
if ($f = chercher_module_lang('local'))
surcharger_langue($f);
}
if (isset($GLOBALS[$var][$code])) {
$text = $GLOBALS[$var][$code];
break;
}
}
// Retour aux sources si la chaine est absente dans la langue cible ;
// on essaie d'abord la langue du site, puis a defaut la langue fr
if (!strlen($text)
AND $lang !== 'fr') {
if ($lang !== $GLOBALS['meta']['langue_site'])
$text = inc_traduire_dist($ori, $GLOBALS['meta']['langue_site']);
else
$text = inc_traduire_dist($ori, 'fr');
}
// Supprimer la mention <NEW> ou <MODIF>
if (substr($text,0,1) === '<')
$text = str_replace(array('<NEW>', '<MODIF>'), array(), $text);
// Si on n'est pas en utf-8, la chaine peut l'etre...
// le cas echeant on la convertit en entites html &#xxx;
if ($GLOBALS['meta']['charset'] !== 'utf-8'
AND preg_match(',[\x7f-\xff],S', $text)) {
include_spip('inc/charsets');
$text = charset2unicode($text,'utf-8');
}
$deja_vu[$lang][$ori] = $text;
return $text;
}
示例13: translitteration
function translitteration($texte, $charset = 'AUTO', $complexe = '')
{
static $trans;
if ($charset == 'AUTO') {
$charset = read_meta('charset');
}
$charset = strtolower($charset);
$table_translit = 'translit' . $complexe;
// 1. Passer le charset et les é en utf-8
$texte = unicode_to_utf_8(html2unicode(charset2unicode($texte, $charset, true)));
// 2. Translitterer grace a la table predefinie
if (!$trans[$complexe]) {
global $CHARSET;
load_charset($table_translit);
reset($CHARSET[$table_translit]);
while (list($key, $val) = each($CHARSET[$table_translit])) {
$trans[$complexe][caractere_utf_8($key)] = $val;
}
}
if ($GLOBALS['flag_strtr2']) {
$texte = strtr($texte, $trans[$complexe]);
} else {
$tr = $trans[$complexe];
while (list($from, $to) = each($tr)) {
$texte = str_replace($from, $to, $texte);
}
}
/*
// Le probleme d'iconv c'est qu'il risque de nous renvoyer des ? alors qu'on
// prefere garder l'utf-8 pour que la chaine soit indexable.
// 3. Translitterer grace a iconv
if ($GLOBALS['flag_iconv'] && preg_match('/�*([0-9]+);/', $texte)) {
$texte = iconv('utf-8', 'ascii//translit', $texte);
}
*/
return $texte;
}
示例14: filtrer_ical
function filtrer_ical($texte)
{
#include_spip('inc/charsets');
$texte = html2unicode($texte);
$texte = unicode2charset(charset2unicode($texte, $GLOBALS['meta']['charset'], 1), 'utf-8');
$texte = preg_replace("/\n/", " ", $texte);
$texte = preg_replace("/,/", "\\,", $texte);
return $texte;
}
示例15: afficher_diff
function afficher_diff($texte)
{
$charset = $GLOBALS['meta']['charset'];
if ($charset == 'utf-8') {
return $texte;
}
return charset2unicode($texte, 'utf-8');
}