Example #1
0
/**
 * 获取字符串长度
 * @param string $str 字符串
 * @return int
 */
function length($str)
{
    $str = (string) $str;
    if (function_exists('mb_strlen')) {
        return mb_strlen($str);
    }
    if (is_utf8($str)) {
        return strlen($str);
    }
    $count = 0;
    for ($i = 0; $i < strlen($str); $i++) {
        $value = ord($str[$i]);
        if ($value > 127) {
            $count++;
            if ($value >= 192 && $value <= 223) {
                $i++;
            } elseif ($value >= 224 && $value <= 239) {
                $i = $i + 2;
            } elseif ($value >= 240 && $value <= 247) {
                $i = $i + 3;
            }
        }
        $count++;
    }
    return $count;
}
Example #2
0
 public function process_raids($error_out = true)
 {
     if ($this->in->get('checkraid') == $this->user->lang('rli_send')) {
         $this->rli->flush_cache();
         if ($this->in->exists('log') && $this->rli->config('parser') != 'empty') {
             $log = trim(str_replace("&", "and", stripslashes(html_entity_decode($_POST['log']))));
             $log = is_utf8($log) ? $log : utf8_encode($log);
             $this->parser->parse_string($log);
         }
         $this->rli->add_cache_data('progress', 'members');
     }
     $this->raid->add_new($this->in->get('raid_add', 0));
     if ($this->in->get('checkraid') == $this->user->lang('rli_calc_note_value')) {
         $this->raid->recalc();
     }
     $this->raid->display(true);
     $this->tpl->assign_vars(array('USE_TIMEDKP' => $this->rli->config('use_dkp') & 2, 'USE_BOSSDKP' => $this->rli->config('use_dkp') & 1, 'USE_EVENTDKP' => $this->rli->config('use_dkp') & 4));
     //language
     lang2tpl();
     // error processing
     if ($error_out) {
         $this->process_error('process_raids');
     }
     $this->rli->nav(0);
     $this->core->set_vars(array('page_title' => sprintf($this->user->lang('admin_title_prefix'), $this->config->get('guildtag'), $this->config->get('dkp_name')) . ': ' . $this->user->lang('rli_check_data'), 'template_path' => $this->pm->get_data('raidlogimport', 'template_path'), 'template_file' => 'raids.html', 'display' => true));
 }
 public function getAllExpression($flush = false)
 {
     $cache_id = '_model_expression';
     if (($res = F($cache_id)) === false || $flush === true) {
         global $ts;
         $pkg = $ts['site']['expression'];
         $filepath = SITE_PATH . '/public/themes/' . $ts['site']['site_theme'] . '/images/expression/' . $pkg;
         require_once ADDON_PATH . '/libs/Io/Dir.class.php';
         $expression = new Dir($filepath);
         $expression_pkg = $expression->toArray();
         $res = array();
         foreach ($expression_pkg as $value) {
             if (!is_utf8($value['filename'])) {
                 $value['filename'] = auto_charset($value['filename'], 'GBK', 'UTF8');
             }
             list($file) = explode(".", $value['filename']);
             $temp['title'] = $file;
             $temp['emotion'] = '[' . $file . ']';
             $temp['filename'] = $value['filename'];
             $temp['type'] = $pkg;
             $res[$temp['emotion']] = $temp;
         }
         F($cache_id, $res);
     }
     return $res;
 }
Example #4
0
function surligner_mots($page, $surcharge_surligne = '')
{
    $surlignejs_engines = array(array("," . str_replace(array("/", "."), array("\\/", "\\."), $GLOBALS['meta']['adresse_site']) . ",i", ",recherche=([^&]+),i"), array(",^http://(www\\.)?google\\.,i", ",q=([^&]+),i"), array(",^http://(www\\.)?search\\.yahoo\\.,i", ",p=([^&]+),i"), array(",^http://(www\\.)?search\\.msn\\.,i", ",q=([^&]+),i"), array(",^http://(www\\.)?search\\.live\\.,i", ",query=([^&]+),i"), array(",^http://(www\\.)?search\\.aol\\.,i", ",userQuery=([^&]+),i"), array(",^http://(www\\.)?ask\\.com,i", ",q=([^&]+),i"), array(",^http://(www\\.)?altavista\\.,i", ",q=([^&]+),i"), array(",^http://(www\\.)?feedster\\.,i", ",q=([^&]+),i"), array(",^http://(www\\.)?search\\.lycos\\.,i", ",q=([^&]+),i"), array(",^http://(www\\.)?alltheweb\\.,i", ",q=([^&]+),i"), array(",^http://(www\\.)?technorati\\.com,i", ",([^\\?\\/]+)(?:\\?.*)\$,i"));
    $ref = $_SERVER['HTTP_REFERER'];
    //avoid a js injection
    if ($surcharge_surligne) {
        $surcharge_surligne = preg_replace(",(?<!\\\\)((?:(?>\\\\){2})*)('),", "\$1\\\\\$2", $surcharge_surligne);
        $surcharge_surligne = str_replace("\\", "\\\\", $surcharge_surligne);
        if ($GLOBALS['meta']['charset'] == 'utf-8') {
            include_spip('inc/charsets');
            if (!is_utf8($surcharge_surligne)) {
                $surcharge_surligne = utf8_encode($surcharge_surligne);
            }
        }
    }
    foreach ($surlignejs_engines as $engine) {
        if ($surcharge_surligne || preg_match($engine[0], $ref) && preg_match($engine[1], $ref)) {
            //good referrer found or var_recherche is not null
            include_spip('inc/filtres');
            $script = "\n      <script type='text/javascript' src='" . url_absolue(find_in_path('javascript/SearchHighlight.js')) . "'></script>\n      <script type='text/javascript'>/*<![CDATA[*/\n      if (window.jQuery)\n        (function(\$){\$(function(){\n          \$(document).SearchHighlight({\n            tag_name:'" . (html5_permis() ? 'mark' : 'span') . "',\n            style_name:'spip_surligne',\n            exact:'whole',\n            style_name_suffix:false,\n            engines:[/^" . str_replace(array("/", "."), array("\\/", "\\."), $GLOBALS['meta']['adresse_site']) . "/i,/recherche=([^&]+)/i],\n            highlight:'.surlignable',\n            nohighlight:'.pas_surlignable'" . ($surcharge_surligne ? ",\n            keys:'{$surcharge_surligne}'" : "") . ",\n            min_length: 3\n          })\n        });\n      })(jQuery);\n      /*]]>*/</script>\n      ";
            // on l'insere juste avant </head>, sinon tout en bas
            if (is_null($l = strpos($page, '</head>'))) {
                $l = strlen($page);
            }
            $page = substr_replace($page, $script, $l, 0);
            break;
        }
    }
    return $page;
}
Example #5
0
function contenu_document($arg, $charset = '')
{
    if (is_numeric($arg)) {
        $r = sql_fetsel("fichier,distant", "spip_documents", "id_document=" . intval($arg));
        if (!$r) {
            return '';
        }
        $f = $r['fichier'];
        $f = $r['distant'] == 'oui' ? _DIR_RACINE . copie_locale($f) : get_spip_doc($f);
    } else {
        if (!@file_exists($f = $arg)) {
            if (!($f = copie_locale($f))) {
                return '';
            }
            $f = _DIR_RACINE . $f;
        }
    }
    $r = spip_file_get_contents($f);
    if ($charset) {
        include_spip('inc/charset');
        if ($charset !== 'auto') {
            $r = importer_charset($r, $charset);
        } elseif ($GLOBALS['meta']['charset'] == 'utf-8' and !is_utf8($r)) {
            $r = importer_charset($r, CHARSET_JOINT);
        }
    }
    return $r;
}
Example #6
0
function utf8decode($text)
{
    if (is_utf8($text)) {
        return utf8_decode($text);
    }
    return $text;
}
Example #7
0
function remove_accents($string)
{
    if (!preg_match('/[\\x80-\\xff]/', $string)) {
        return $string;
    }
    //Конвертируем урлы в латиницу
    if (is_utf8($string)) {
        $chars = array("А" => "a", "Б" => "b", "В" => "v", "Г" => "g", "Д" => "d", "Е" => "e", "Ж" => "j", "З" => "z", "И" => "i", "Й" => "y", "К" => "k", "Л" => "l", "М" => "m", "Н" => "n", "О" => "o", "П" => "p", "Р" => "r", "С" => "s", "Т" => "t", "У" => "u", "Ф" => "f", "Х" => "h", "Ц" => "ts", "Ч" => "ch", "Ш" => "sh", "Щ" => "sch", "Ъ" => "", "Ы" => "yi", "Ь" => "", "Э" => "e", "Ю" => "yu", "Я" => "ya", "а" => "a", "б" => "b", "в" => "v", "г" => "g", "д" => "d", "е" => "e", "ж" => "j", "з" => "z", "и" => "i", "й" => "y", "к" => "k", "л" => "l", "м" => "m", "н" => "n", "о" => "o", "п" => "p", "р" => "r", "с" => "s", "т" => "t", "у" => "u", "ф" => "f", "х" => "h", "ц" => "ts", "ч" => "ch", "ш" => "sh", "щ" => "sch", "ъ" => "y", "ы" => "yi", "ь" => "", "э" => "e", "ю" => "yu", "я" => "ya", " " => "_", "." => "", "/" => "_", "-" => "_");
        $string = strtr($string, $chars);
    }
    if (is_utf8($string)) {
        $chars = array(chr(195) . chr(128) => 'A', chr(195) . chr(129) => 'A', chr(195) . chr(130) => 'A', chr(195) . chr(131) => 'A', chr(195) . chr(132) => 'A', chr(195) . chr(133) => 'A', chr(195) . chr(135) => 'C', chr(195) . chr(136) => 'E', chr(195) . chr(137) => 'E', chr(195) . chr(138) => 'E', chr(195) . chr(139) => 'E', chr(195) . chr(140) => 'I', chr(195) . chr(141) => 'I', chr(195) . chr(142) => 'I', chr(195) . chr(143) => 'I', chr(195) . chr(145) => 'N', chr(195) . chr(146) => 'O', chr(195) . chr(147) => 'O', chr(195) . chr(148) => 'O', chr(195) . chr(149) => 'O', chr(195) . chr(150) => 'O', chr(195) . chr(153) => 'U', chr(195) . chr(154) => 'U', chr(195) . chr(155) => 'U', chr(195) . chr(156) => 'U', chr(195) . chr(157) => 'Y', chr(195) . chr(159) => 's', chr(195) . chr(160) => 'a', chr(195) . chr(161) => 'a', chr(195) . chr(162) => 'a', chr(195) . chr(163) => 'a', chr(195) . chr(164) => 'a', chr(195) . chr(165) => 'a', chr(195) . chr(167) => 'c', chr(195) . chr(168) => 'e', chr(195) . chr(169) => 'e', chr(195) . chr(170) => 'e', chr(195) . chr(171) => 'e', chr(195) . chr(172) => 'i', chr(195) . chr(173) => 'i', chr(195) . chr(174) => 'i', chr(195) . chr(175) => 'i', chr(195) . chr(177) => 'n', chr(195) . chr(178) => 'o', chr(195) . chr(179) => 'o', chr(195) . chr(180) => 'o', chr(195) . chr(181) => 'o', chr(195) . chr(182) => 'o', chr(195) . chr(182) => 'o', chr(195) . chr(185) => 'u', chr(195) . chr(186) => 'u', chr(195) . chr(187) => 'u', chr(195) . chr(188) => 'u', chr(195) . chr(189) => 'y', chr(195) . chr(191) => 'y', chr(196) . chr(128) => 'A', chr(196) . chr(129) => 'a', chr(196) . chr(130) => 'A', chr(196) . chr(131) => 'a', chr(196) . chr(132) => 'A', chr(196) . chr(133) => 'a', chr(196) . chr(134) => 'C', chr(196) . chr(135) => 'c', chr(196) . chr(136) => 'C', chr(196) . chr(137) => 'c', chr(196) . chr(138) => 'C', chr(196) . chr(139) => 'c', chr(196) . chr(140) => 'C', chr(196) . chr(141) => 'c', chr(196) . chr(142) => 'D', chr(196) . chr(143) => 'd', chr(196) . chr(144) => 'D', chr(196) . chr(145) => 'd', chr(196) . chr(146) => 'E', chr(196) . chr(147) => 'e', chr(196) . chr(148) => 'E', chr(196) . chr(149) => 'e', chr(196) . chr(150) => 'E', chr(196) . chr(151) => 'e', chr(196) . chr(152) => 'E', chr(196) . chr(153) => 'e', chr(196) . chr(154) => 'E', chr(196) . chr(155) => 'e', chr(196) . chr(156) => 'G', chr(196) . chr(157) => 'g', chr(196) . chr(158) => 'G', chr(196) . chr(159) => 'g', chr(196) . chr(160) => 'G', chr(196) . chr(161) => 'g', chr(196) . chr(162) => 'G', chr(196) . chr(163) => 'g', chr(196) . chr(164) => 'H', chr(196) . chr(165) => 'h', chr(196) . chr(166) => 'H', chr(196) . chr(167) => 'h', chr(196) . chr(168) => 'I', chr(196) . chr(169) => 'i', chr(196) . chr(170) => 'I', chr(196) . chr(171) => 'i', chr(196) . chr(172) => 'I', chr(196) . chr(173) => 'i', chr(196) . chr(174) => 'I', chr(196) . chr(175) => 'i', chr(196) . chr(176) => 'I', chr(196) . chr(177) => 'i', chr(196) . chr(178) => 'IJ', chr(196) . chr(179) => 'ij', chr(196) . chr(180) => 'J', chr(196) . chr(181) => 'j', chr(196) . chr(182) => 'K', chr(196) . chr(183) => 'k', chr(196) . chr(184) => 'k', chr(196) . chr(185) => 'L', chr(196) . chr(186) => 'l', chr(196) . chr(187) => 'L', chr(196) . chr(188) => 'l', chr(196) . chr(189) => 'L', chr(196) . chr(190) => 'l', chr(196) . chr(191) => 'L', chr(197) . chr(128) => 'l', chr(197) . chr(129) => 'L', chr(197) . chr(130) => 'l', chr(197) . chr(131) => 'N', chr(197) . chr(132) => 'n', chr(197) . chr(133) => 'N', chr(197) . chr(134) => 'n', chr(197) . chr(135) => 'N', chr(197) . chr(136) => 'n', chr(197) . chr(137) => 'N', chr(197) . chr(138) => 'n', chr(197) . chr(139) => 'N', chr(197) . chr(140) => 'O', chr(197) . chr(141) => 'o', chr(197) . chr(142) => 'O', chr(197) . chr(143) => 'o', chr(197) . chr(144) => 'O', chr(197) . chr(145) => 'o', chr(197) . chr(146) => 'OE', chr(197) . chr(147) => 'oe', chr(197) . chr(148) => 'R', chr(197) . chr(149) => 'r', chr(197) . chr(150) => 'R', chr(197) . chr(151) => 'r', chr(197) . chr(152) => 'R', chr(197) . chr(153) => 'r', chr(197) . chr(154) => 'S', chr(197) . chr(155) => 's', chr(197) . chr(156) => 'S', chr(197) . chr(157) => 's', chr(197) . chr(158) => 'S', chr(197) . chr(159) => 's', chr(197) . chr(160) => 'S', chr(197) . chr(161) => 's', chr(197) . chr(162) => 'T', chr(197) . chr(163) => 't', chr(197) . chr(164) => 'T', chr(197) . chr(165) => 't', chr(197) . chr(166) => 'T', chr(197) . chr(167) => 't', chr(197) . chr(168) => 'U', chr(197) . chr(169) => 'u', chr(197) . chr(170) => 'U', chr(197) . chr(171) => 'u', chr(197) . chr(172) => 'U', chr(197) . chr(173) => 'u', chr(197) . chr(174) => 'U', chr(197) . chr(175) => 'u', chr(197) . chr(176) => 'U', chr(197) . chr(177) => 'u', chr(197) . chr(178) => 'U', chr(197) . chr(179) => 'u', chr(197) . chr(180) => 'W', chr(197) . chr(181) => 'w', chr(197) . chr(182) => 'Y', chr(197) . chr(183) => 'y', chr(197) . chr(184) => 'Y', chr(197) . chr(185) => 'Z', chr(197) . chr(186) => 'z', chr(197) . chr(187) => 'Z', chr(197) . chr(188) => 'z', chr(197) . chr(189) => 'Z', chr(197) . chr(190) => 'z', chr(197) . chr(191) => 's', chr(226) . chr(130) . chr(172) => 'E', chr(194) . chr(163) => '');
        $string = strtr($string, $chars);
    } else {
        // Assume ISO-8859-1 if not UTF-8
        $chars['in'] = chr(128) . chr(131) . chr(138) . chr(142) . chr(154) . chr(158) . chr(159) . chr(162) . chr(165) . chr(181) . chr(192) . chr(193) . chr(194) . chr(195) . chr(196) . chr(197) . chr(199) . chr(200) . chr(201) . chr(202) . chr(203) . chr(204) . chr(205) . chr(206) . chr(207) . chr(209) . chr(210) . chr(211) . chr(212) . chr(213) . chr(214) . chr(216) . chr(217) . chr(218) . chr(219) . chr(220) . chr(221) . chr(224) . chr(225) . chr(226) . chr(227) . chr(228) . chr(229) . chr(231) . chr(232) . chr(233) . chr(234) . chr(235) . chr(236) . chr(237) . chr(238) . chr(239) . chr(241) . chr(242) . chr(243) . chr(244) . chr(245) . chr(246) . chr(248) . chr(249) . chr(250) . chr(251) . chr(252) . chr(253) . chr(255);
        $chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";
        $string = strtr($string, $chars['in'], $chars['out']);
        $double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254));
        $double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th');
        $string = str_replace($double_chars['in'], $double_chars['out'], $string);
    }
    $string = strtolower(htmlentities($string));
    $string = preg_replace('#&([a-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '$1', $string);
    $string = preg_replace('#&([a-z]{2})(?:lig);#', '$1', $string);
    $string = preg_replace('#&[^;]+;#', '', $string);
    return $string;
}
Example #8
0
 function set_euckr($str)
 {
     if (is_utf8($str)) {
         $str = convert_charset('utf-8', 'cp949', $str);
     }
     $str = trim($str);
     return $str;
 }
Example #9
0
function encode_if_necessary($str)
{
    if (!is_utf8($str)) {
        return utf8_encode($str);
    } else {
        return $str;
    }
}
Example #10
0
/**
 * Importer le charset d'une ligne
 *
 * @param unknown_type $texte
 * @return array
 */
function importer_csv_importcharset($texte){
	// le plus frequent, en particulier avec les trucs de ms@@@
	$charset_source = 'iso-8859-1';
	// mais open-office sait faire mieux, donc mefiance !
	if (is_utf8($texte))
		$charset_source = 'utf-8';
	return importer_charset($texte,$charset_source);
}
Example #11
0
function make_utf8($Str) {
	if ($Str!="") {
		if (is_utf8($Str)) { $Encoding="UTF-8"; }
		if (empty($Encoding)) { $Encoding=mb_detect_encoding($Str,'UTF-8, ISO-8859-1'); }
		if (empty($Encoding)) { $Encoding="ISO-8859-1"; }
		if ($Encoding=="UTF-8") { return $Str; }
		else { return @mb_convert_encoding($Str,"UTF-8",$Encoding); }
	}
}
Example #12
0
function comment_decode($comment)
{
    $comment = urldecode($comment);
    if (is_utf8($comment)) {
        return $comment;
    } else {
        return utf8_encode($comment);
    }
}
Example #13
0
 protected function _encodeVariable($Variable, $ObjectDepth = 1, $ArrayDepth = 1)
 {
     if (is_null($Variable)) {
         return array('type' => 'null');
     } else {
         if (is_bool($Variable)) {
             return array('type' => 'boolean', 'value' => $Variable ? '1' : '0');
         } else {
             if (is_int($Variable)) {
                 return array('type' => 'integer', 'value' => $Variable);
             } else {
                 if (is_float($Variable)) {
                     return array('type' => 'float', 'value' => $Variable);
                 } else {
                     if (is_double($Variable)) {
                         return array('type' => 'double', 'value' => $Variable);
                     } else {
                         if (is_object($Variable)) {
                             return array('type' => 'object', 'instance' => $this->_encodeInstance($Variable));
                         } else {
                             if (is_array($Variable)) {
                                 // Check if we have an indexed array (list) or an associative array (map)
                                 $i = 0;
                                 foreach (array_keys($Variable) as $k) {
                                     if ($k != $i++) {
                                         $i = -1;
                                         break;
                                     }
                                 }
                                 if ($i == -1) {
                                     return array('type' => 'map', 'map' => $this->_encodeAssociativeArray($Variable, $ObjectDepth, $ArrayDepth));
                                 } else {
                                     return array('type' => 'list', 'list' => $this->_encodeArray($Variable, $ObjectDepth, $ArrayDepth));
                                 }
                             } else {
                                 if (is_resource($Variable)) {
                                     return array('type' => 'resource', 'value' => $Variable);
                                 } else {
                                     if (is_string($Variable)) {
                                         if (is_utf8($Variable)) {
                                             return array('type' => 'string', 'value' => $Variable);
                                         } else {
                                             return array('type' => 'string', 'value' => utf8_encode($Variable));
                                         }
                                     } else {
                                         return array('type' => 'unknown', 'value' => $Variable);
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Example #14
0
function convertString($str)
{
    // convert to utf8, if necessary
    if (!is_utf8($str)) {
        $str = utf8_encode($str);
    }
    // clean up the html
    $str = cleanHTML($str);
    // return the url encoded string
    return urlencode($str);
}
Example #15
0
	/**
	 * 重新通知
	 */
	public function renotice() {
		$noticeid = isset($_POST['noticeid']) ? $_POST['noticeid'] : showmessage(L('illegal_parameters'), HTTP_REFERER);
		$appid = isset($_POST['appid']) ? $_POST['appid'] : showmessage(L('illegal_parameters'), HTTP_REFERER);
		if ($noticeinfo = $this->db->get_one(array('id'=>$noticeid))) {
			//通知app noticedata 返回通知成功的appid 1
			//debug post appid.phpsso.php?data=noticeinfo[noticedata];
			$applist = getcache('applist');
			$url = $applist[$appid]['url'].$applist[$appid]['apifilename'];
			$data = string2array($noticeinfo['noticedata']);
			$data['action'] = $noticeinfo['operation'];
			
			//转换中文编码
			if (CHARSET != $applist[$appid]['charset'] && isset($data['action']) && $data['action'] == 'member_add') {
				if(isset($data['username']) && !empty($data['username'])) {
					if(CHARSET == 'utf-8') {	//判断phpsso字符集是否为utf-8编码
						//应用字符集如果是utf-8,并且用户名是utf-8编码,转换用户名为phpsso字符集,如果为英文,is_utf8返回false,不进行转换
						if(!is_utf8($data['username'])) {
							$data['username'] = iconv(CHARSET, $applist[$appid]['charset'], $data['username']);
						}
					} else {
						if(!is_utf8($data['username'])) {
							$data['username'] = iconv(CHARSET, $applist[$appid]['charset'], $data['username']);
						}
					}
				}
			}
			$tmp_s = strstr($url, '?') ? '&' : '?';
			$status = ps_send($url.$tmp_s.'appid='.$appid, $data, $applist[$appid]['authkey']);

			//通信次数+1
			$this->db->update(array('totalnum'=>'+=1', 'dateline'=>SYS_TIME), array('id'=>$noticeid));
			
			if($status == 1) {
				//重置消息队列app通信状态
				$appstatusarr = json_decode($noticeinfo['appstatus'], 1);
				$appstatusarr[$appid] = 1;
				$appstatus = json_encode($appstatusarr);
				
				//全部通知成功后更新消息队列状态
				if (!strstr($appstatus, ':0')) {
					$this->db->update(array('succeed'=>1), array('id'=>$noticeid));
				}
				
				//更新消息队列
				$this->db->update(array('appstatus'=>$appstatus), array('id'=>$noticeid));
				exit('1');
			} else {
				exit('0');
			}
		} else {
			exit('0');
		}
	}
Example #16
0
function mystrlen($str)
{
    $step = is_utf8($str) ? 2 : 1;
    $strlen = $mystrlen = strlen($str);
    for ($i = 0; $i < $strlen; $i++) {
        if (ord(substr($str, $i, 1)) > 0xa0) {
            $mystrlen -= $step;
            $i += $step;
        }
    }
    return $mystrlen;
}
Example #17
0
function convert_encoding($str)
{
    if (is_utf8()) {
        return $str;
    } else {
        if (function_exists("iconv")) {
            return iconv('utf-8', 'gbk', $str);
        } else {
            if (function_exists("mb_convert_encoding")) {
                return mb_convert_encoding($str, 'gbk', 'utf-8');
            } else {
                throw new Exception('请先安装 MBString 或 iconv 扩展!');
            }
        }
    }
}
Example #18
0
function query($word)
{
    $word = strtr($word, ' ', "+");
    $word = strtr($word, '_', "+");
    $start = ($page - 1) * $rows;
    if ($word == '') {
        return false;
    }
    if (is_utf8($word)) {
        $word = rawurlencode($word);
    } else {
        $word = mb_convert_encoding($word, "UTF-8", "GBK");
        $word = rawurlencode($word);
    }
    return preg_replace("/%2B/i", "+", $word);
}
Example #19
0
 public function info()
 {
     $tag = urldecode($_GET['tag']);
     if (!is_utf8($tag)) {
         $tag = auto_charset($tag, 'gbk', 'utf-8');
     }
     $tag = msubstr(in($tag), 0, 20);
     //查找tag信息
     if (!empty($tag)) {
         $info = model('tags')->tag_info($tag);
     } else {
         $this->error404();
     }
     if (empty($info)) {
         $this->error404();
     }
     //更新点击计数
     model('tags')->views_content($info['id'], $info['click']);
     /*hook*/
     $this->plus_hook('tags', 'index', $info);
     /*hook end*/
     //分页处理
     $url = __INDEX__ . '/tags-' . $tag . '/pages-{page}.html';
     $listrows = $this->config['TPL_TAGS_PAGE'];
     if (empty($listrows)) {
         $listrows = 20;
     }
     $limit = $this->pagelimit($url, $listrows);
     $nav = array(0 => array('name' => 'TAG', 'url' => __INDEX__ . '/tags/index'), 1 => array('name' => $tag, 'url' => __INDEX__ . '/tags-' . $tag . '/'));
     //MEDIA信息
     $this->common = model('pageinfo')->media($info['name'] . ' - TAGS', $tag);
     //内容列表
     $loop = model('tags')->tag_list($info['id'], $limit);
     //统计总内容数量
     $count = model('tags')->tag_count($info['id']);
     //分页处理
     $this->page = $this->page($url, $count, $listrows);
     //获取上一页代码
     $this->prepage = $this->page($url, $count, $listrows, '', 1);
     //获取下一页代码
     $this->nextpage = $this->page($url, $count, $listrows, '', 2);
     $this->assign('loop', $loop);
     $this->assign('nav', $nav);
     $this->assign('info', $info);
     $this->display($this->config['TPL_TAGS']);
 }
Example #20
0
 function db_query($q)
 {
     global $ILCH_DEBUG_DB_COUNT_QUERIES, $ILCH_DEBUG_DB_QUERIES;
     $ILCH_DEBUG_DB_COUNT_QUERIES++;
     // Hilfsmodus zum einspielen von utf8 Installationsdatensätzen in die veraltete datenbank *yawn*
     if (defined('INSTALL_COMPLIANCE_MODE')) {
         if (is_utf8($q)) {
             $q = utf8_decode($q);
         }
     }
     if (preg_match("/^UPDATE `?prefix_\\S+`?\\s+SET/is", $q)) {
         $q = preg_replace("/^UPDATE `?prefix_(\\S+?)`?([\\s\\.,]|\$)/i", "UPDATE `" . DBPREF . "\\1`\\2", $q);
     } elseif (preg_match("/^INSERT INTO `?prefix_\\S+`?\\s+[a-z0-9\\s,\\)\\(]*?VALUES/is", $q)) {
         $q = preg_replace("/^INSERT INTO `?prefix_(\\S+?)`?([\\s\\.,]|\$)/i", "INSERT INTO `" . DBPREF . "\\1`\\2", $q);
     } else {
         $q = preg_replace("/prefix_(\\S+?)([\\s\\.,]|\$)/", DBPREF . "\\1\\2", $q);
         //            if (is_utf8($q)) {
         //              $q = utf8_decode($q);
         //            }
     }
     if (!function_exists('debug_bt')) {
         function debug_bt()
         {
             return debug_backtrace();
         }
     }
     $tmp = array();
     $vor = microtime(true);
     $qry = @mysql_query($q, CONN);
     $nach = microtime(true);
     $res = is_resource($qry);
     $tmp['is_valid_result_resource'] = $res;
     $tmp['duration'] = $nach - $vor;
     $tmp['time'] = $nach - SCRIPT_START_TIME;
     $tmp['query'] = $q;
     $tmp['affected_rows'] = mysql_affected_rows(CONN);
     $tmp['result_index'] = (int) $qry;
     $tmp['call'] = debug_bt();
     $error = db_check_error($qry);
     if (!empty($error)) {
         $tmp['error'] = $error;
     }
     $ILCH_DEBUG_DB_QUERIES[] = $tmp;
     return $qry;
 }
Example #21
0
/**
 * WebSite-PHP file utils2.inc.php
 *
 * WebSite-PHP : PHP Framework 100% object (http://www.website-php.com)
 * Copyright (c) 2009-2015 WebSite-PHP.com
 * PHP versions >= 5.2
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 * 
 * @author      Emilien MOREL <admin@website-php.com>
 * @link        http://www.website-php.com
 * @copyright   WebSite-PHP.com 12/05/2015
 * @version     1.2.13
 * @access      public
 * @since       1.2.0
 */
function url_rewrite_format($car, $disable_utf8decode = false)
{
    if (!$disable_utf8decode && function_exists("is_utf8") && is_utf8($car)) {
        $car = utf8_decode($car);
    }
    $car = html_entity_decode($car);
    $string = array("'" => "_", "(" => "_", ")" => "_", "*" => "_", "+" => "_", "," => "_", "-" => "_", "." => "_", "/" => "_", ":" => "_", ";" => "_", "<" => "_", "=" => "_", ">" => "_", "?" => "_", "@" => "_", "[" => "_", "\\" => "_", "]" => "_", "^" => "_", "`" => "_", "{" => "_", "|" => "_", "}" => "_", "~" => "_", "" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "s", "�" => "_", "�" => "oe", "�" => "_", "�" => "Z", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "s", "�" => "_", "�" => "_", "�" => "z", "�" => "y", " " => "_", "�" => "_", "�" => "i", "�" => "c", "�" => "l", "�" => "_", "�" => "y", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "u", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "_", "�" => "A", "�" => "A", "�" => "A", "�" => "A", "�" => "A", "�" => "A", "�" => "AE", "�" => "C", "�" => "E", "�" => "E", "�" => "E", "�" => "E", "�" => "I", "�" => "I", "�" => "I", "�" => "I", "�" => "D", "�" => "N", "�" => "O", "�" => "O", "�" => "O", "�" => "O", "�" => "O", "�" => "x", "�" => "O", "�" => "U", "�" => "U", "�" => "U", "�" => "U", "�" => "Y", "�" => "_", "�" => "s", "�" => "a", "�" => "a", "�" => "a", "�" => "a", "�" => "a", "�" => "a", "�" => "ae", "�" => "c", "�" => "e", "�" => "e", "�" => "e", "�" => "e", "�" => "i", "�" => "i", "�" => "i", "�" => "i", "�" => "_", "�" => "n", "�" => "o", "�" => "o", "�" => "o", "�" => "o", "�" => "o", "�" => "_", "�" => "o", "�" => "u", "�" => "u", "�" => "u", "�" => "u", "�" => "y", "�" => "_", "�" => "y", "&" => "_", "\"" => "_", "!" => "_", "\r" => "_", "&" => "_", "#" => "_", "\$" => "_", "%" => "_", "\n" => "_", "€" => "_", "‚" => "_", "ƒ" => "_", "„" => "_", "…" => "_", "†" => "_", "‡" => "_", "ˆ" => "_", "‰" => "_", "Š" => "s", "‹" => "_", "Œ" => "oe", "Ž" => "Z", "‘" => "_", "’" => "_", "“" => "_", "”" => "_", "•" => "_", "–" => "_", "—" => "_", "˜" => "_", "™" => "_", "š" => "s", "›" => "_", "ž" => "z", "Ÿ" => "y", " " => "_", "¡" => "i", "¢" => "c", "£" => "l", "¤" => "_", "¥" => "y", "¦" => "_", "§" => "_", "¨" => "_", "©" => "_", "ª" => "_", "«" => "_", "¬" => "_", "­" => "_", "®" => "_", "¯" => "_", "°" => "_", "±" => "_", "²" => "_", "³" => "_", "´" => "_", "µ" => "u", "¶" => "_", "·" => "_", "¸" => "_", "¹" => "_", "º" => "_", "»" => "_", "¼" => "_", "½" => "_", "¾" => "_", "¿" => "_", "À" => "A", "Á" => "A", "Â" => "A", "Ã" => "A", "Ä" => "A", "Å" => "A", "Æ" => "AE", "Ç" => "C", "È" => "E", "É" => "E", "Ê" => "E", "Ë" => "E", "Ì" => "I", "Í" => "I", "Î" => "I", "Ï" => "I", "Ð" => "D", "Ñ" => "N", "Ò" => "O", "Ó" => "O", "Ô" => "O", "Õ" => "O", "Ö" => "O", "×" => "x", "Ø" => "O", "Ù" => "U", "Ú" => "U", "Û" => "U", "Ü" => "U", "Ý" => "Y", "Þ" => "_", "ß" => "s", "à" => "a", "á" => "a", "â" => "a", "ã" => "a", "ä" => "a", "å" => "a", "æ" => "ae", "ç" => "c", "è" => "e", "é" => "e", "ê" => "e", "ë" => "e", "ì" => "i", "í" => "i", "î" => "i", "ï" => "i", "ð" => "_", "ñ" => "n", "ò" => "o", "ó" => "o", "ô" => "o", "õ" => "o", "ö" => "o", "÷" => "_", "ø" => "o", "ù" => "u", "ú" => "u", "û" => "u", "ü" => "u", "ý" => "y", "þ" => "_", "ā" => "a", "Ā" => "A", "Î" => "I", "î" => "i", "ç" => "c", "è" => "e", "é" => "e", "Œ" => "OE", "œ" => "oe", "ī" => "i", "ă" => "a", "ţ" => "t", "ș" => "s", "Ō" => "o", "ō" => "o", "ą" => "a", "ş" => "s", "Ś" => "S", "Ş" => "s", "Ł" => "L", "ł" => "l", "ź" => "z", "Ź" => "Z", "Ţ" => "T", "Ī" => "I", "Ą" => "A", "Ș" => "S", "Ă" => "A", "ū" => "u", "Ū" => "U", "ŏ" => "o", "Ŏ" => "O", "Ḩ" => "H", "ḩ" => "h", "ę" => "e", "Ę" => "E", "İ" => "I", "i̇" => "i", "ě" => "e", "Ě" => "E", "č" => "c", "Č" => "C", "ż" => "z", "Ż" => "Z", "ő" => "o", "Ő" => "O", "ğ" => "g", "Ğ" => "G", "ė" => "e", "Ė" => "E", "ř" => "r", "Ř" => "R", "ı" => "i", "ś" => "s", "ń" => "n", "Ń" => "N", "ÿ" => "y", "Ÿ" => "Y", "А" => "a", "Б" => "b", "В" => "v", "Г" => "g", "Д" => "d", "Е" => "e", "Ё" => "yo", "Ж" => "zh", "З" => "z", "И" => "i", "Й" => "j", "К" => "k", "Л" => "l", "М" => "m", "Н" => "n", "О" => "o", "П" => "p", "Р" => "r", "С" => "s", "Т" => "t", "У" => "u", "Ф" => "f", "Х" => "kh", "Ц" => "ts", "Ч" => "ch", "Ш" => "sh", "Щ" => "sch", "Ъ" => "", "Ы" => "y", "Ь" => "", "Э" => "e", "Ю" => "yu", "Я" => "ya", "а" => "a", "б" => "b", "в" => "v", "г" => "g", "д" => "d", "е" => "e", "ё" => "yo", "ж" => "zh", "з" => "z", "и" => "i", "й" => "j", "к" => "k", "л" => "l", "м" => "m", "н" => "n", "о" => "o", "п" => "p", "р" => "r", "с" => "s", "т" => "t", "у" => "u", "ф" => "f", "х" => "kh", "ц" => "ts", "ч" => "ch", "ш" => "sh", "щ" => "sch", "ъ" => "", "ы" => "y", "ь" => "", "э" => "e", "ю" => "yu", "я" => "ya");
    $car = strtr($car, $string);
    $car = stripslashes($car);
    $car = str_replace("__", "_", $car);
    $car = str_replace("__", "_", $car);
    $car = str_replace("__", "_", $car);
    if ($car[strlen($car) - 1] == "_") {
        $car = substr($car, 0, strlen($car) - 1);
    }
    $car = str_replace("_", "-", $car);
    return strtolower($car);
}
Example #22
0
function remove_accents($string)
{
    if (!preg_match('/[\\x80-\\xff]/', $string)) {
        return $string;
    }
    if (is_utf8($string)) {
        $chars = array(chr(195) . chr(128) => 'A', chr(195) . chr(129) => 'A', chr(195) . chr(130) => 'A', chr(195) . chr(131) => 'A', chr(195) . chr(132) => 'A', chr(195) . chr(133) => 'A', chr(195) . chr(135) => 'C', chr(195) . chr(136) => 'E', chr(195) . chr(137) => 'E', chr(195) . chr(138) => 'E', chr(195) . chr(139) => 'E', chr(195) . chr(140) => 'I', chr(195) . chr(141) => 'I', chr(195) . chr(142) => 'I', chr(195) . chr(143) => 'I', chr(195) . chr(145) => 'N', chr(195) . chr(146) => 'O', chr(195) . chr(147) => 'O', chr(195) . chr(148) => 'O', chr(195) . chr(149) => 'O', chr(195) . chr(150) => 'O', chr(195) . chr(153) => 'U', chr(195) . chr(154) => 'U', chr(195) . chr(155) => 'U', chr(195) . chr(156) => 'U', chr(195) . chr(157) => 'Y', chr(195) . chr(159) => 's', chr(195) . chr(160) => 'a', chr(195) . chr(161) => 'a', chr(195) . chr(162) => 'a', chr(195) . chr(163) => 'a', chr(195) . chr(164) => 'a', chr(195) . chr(165) => 'a', chr(195) . chr(167) => 'c', chr(195) . chr(168) => 'e', chr(195) . chr(169) => 'e', chr(195) . chr(170) => 'e', chr(195) . chr(171) => 'e', chr(195) . chr(172) => 'i', chr(195) . chr(173) => 'i', chr(195) . chr(174) => 'i', chr(195) . chr(175) => 'i', chr(195) . chr(177) => 'n', chr(195) . chr(178) => 'o', chr(195) . chr(179) => 'o', chr(195) . chr(180) => 'o', chr(195) . chr(181) => 'o', chr(195) . chr(182) => 'o', chr(195) . chr(182) => 'o', chr(195) . chr(185) => 'u', chr(195) . chr(186) => 'u', chr(195) . chr(187) => 'u', chr(195) . chr(188) => 'u', chr(195) . chr(189) => 'y', chr(195) . chr(191) => 'y', chr(196) . chr(128) => 'A', chr(196) . chr(129) => 'a', chr(196) . chr(130) => 'A', chr(196) . chr(131) => 'a', chr(196) . chr(132) => 'A', chr(196) . chr(133) => 'a', chr(196) . chr(134) => 'C', chr(196) . chr(135) => 'c', chr(196) . chr(136) => 'C', chr(196) . chr(137) => 'c', chr(196) . chr(138) => 'C', chr(196) . chr(139) => 'c', chr(196) . chr(140) => 'C', chr(196) . chr(141) => 'c', chr(196) . chr(142) => 'D', chr(196) . chr(143) => 'd', chr(196) . chr(144) => 'D', chr(196) . chr(145) => 'd', chr(196) . chr(146) => 'E', chr(196) . chr(147) => 'e', chr(196) . chr(148) => 'E', chr(196) . chr(149) => 'e', chr(196) . chr(150) => 'E', chr(196) . chr(151) => 'e', chr(196) . chr(152) => 'E', chr(196) . chr(153) => 'e', chr(196) . chr(154) => 'E', chr(196) . chr(155) => 'e', chr(196) . chr(156) => 'G', chr(196) . chr(157) => 'g', chr(196) . chr(158) => 'G', chr(196) . chr(159) => 'g', chr(196) . chr(160) => 'G', chr(196) . chr(161) => 'g', chr(196) . chr(162) => 'G', chr(196) . chr(163) => 'g', chr(196) . chr(164) => 'H', chr(196) . chr(165) => 'h', chr(196) . chr(166) => 'H', chr(196) . chr(167) => 'h', chr(196) . chr(168) => 'I', chr(196) . chr(169) => 'i', chr(196) . chr(170) => 'I', chr(196) . chr(171) => 'i', chr(196) . chr(172) => 'I', chr(196) . chr(173) => 'i', chr(196) . chr(174) => 'I', chr(196) . chr(175) => 'i', chr(196) . chr(176) => 'I', chr(196) . chr(177) => 'i', chr(196) . chr(178) => 'IJ', chr(196) . chr(179) => 'ij', chr(196) . chr(180) => 'J', chr(196) . chr(181) => 'j', chr(196) . chr(182) => 'K', chr(196) . chr(183) => 'k', chr(196) . chr(184) => 'k', chr(196) . chr(185) => 'L', chr(196) . chr(186) => 'l', chr(196) . chr(187) => 'L', chr(196) . chr(188) => 'l', chr(196) . chr(189) => 'L', chr(196) . chr(190) => 'l', chr(196) . chr(191) => 'L', chr(197) . chr(128) => 'l', chr(197) . chr(129) => 'L', chr(197) . chr(130) => 'l', chr(197) . chr(131) => 'N', chr(197) . chr(132) => 'n', chr(197) . chr(133) => 'N', chr(197) . chr(134) => 'n', chr(197) . chr(135) => 'N', chr(197) . chr(136) => 'n', chr(197) . chr(137) => 'N', chr(197) . chr(138) => 'n', chr(197) . chr(139) => 'N', chr(197) . chr(140) => 'O', chr(197) . chr(141) => 'o', chr(197) . chr(142) => 'O', chr(197) . chr(143) => 'o', chr(197) . chr(144) => 'O', chr(197) . chr(145) => 'o', chr(197) . chr(146) => 'OE', chr(197) . chr(147) => 'oe', chr(197) . chr(148) => 'R', chr(197) . chr(149) => 'r', chr(197) . chr(150) => 'R', chr(197) . chr(151) => 'r', chr(197) . chr(152) => 'R', chr(197) . chr(153) => 'r', chr(197) . chr(154) => 'S', chr(197) . chr(155) => 's', chr(197) . chr(156) => 'S', chr(197) . chr(157) => 's', chr(197) . chr(158) => 'S', chr(197) . chr(159) => 's', chr(197) . chr(160) => 'S', chr(197) . chr(161) => 's', chr(197) . chr(162) => 'T', chr(197) . chr(163) => 't', chr(197) . chr(164) => 'T', chr(197) . chr(165) => 't', chr(197) . chr(166) => 'T', chr(197) . chr(167) => 't', chr(197) . chr(168) => 'U', chr(197) . chr(169) => 'u', chr(197) . chr(170) => 'U', chr(197) . chr(171) => 'u', chr(197) . chr(172) => 'U', chr(197) . chr(173) => 'u', chr(197) . chr(174) => 'U', chr(197) . chr(175) => 'u', chr(197) . chr(176) => 'U', chr(197) . chr(177) => 'u', chr(197) . chr(178) => 'U', chr(197) . chr(179) => 'u', chr(197) . chr(180) => 'W', chr(197) . chr(181) => 'w', chr(197) . chr(182) => 'Y', chr(197) . chr(183) => 'y', chr(197) . chr(184) => 'Y', chr(197) . chr(185) => 'Z', chr(197) . chr(186) => 'z', chr(197) . chr(187) => 'Z', chr(197) . chr(188) => 'z', chr(197) . chr(189) => 'Z', chr(197) . chr(190) => 'z', chr(197) . chr(191) => 's', chr(226) . chr(130) . chr(172) => 'E', chr(194) . chr(163) => '');
        $string = strtr($string, $chars);
    } else {
        // Assume ISO-8859-1 if not UTF-8
        $chars['in'] = chr(128) . chr(131) . chr(138) . chr(142) . chr(154) . chr(158) . chr(159) . chr(162) . chr(165) . chr(181) . chr(192) . chr(193) . chr(194) . chr(195) . chr(196) . chr(197) . chr(199) . chr(200) . chr(201) . chr(202) . chr(203) . chr(204) . chr(205) . chr(206) . chr(207) . chr(209) . chr(210) . chr(211) . chr(212) . chr(213) . chr(214) . chr(216) . chr(217) . chr(218) . chr(219) . chr(220) . chr(221) . chr(224) . chr(225) . chr(226) . chr(227) . chr(228) . chr(229) . chr(231) . chr(232) . chr(233) . chr(234) . chr(235) . chr(236) . chr(237) . chr(238) . chr(239) . chr(241) . chr(242) . chr(243) . chr(244) . chr(245) . chr(246) . chr(248) . chr(249) . chr(250) . chr(251) . chr(252) . chr(253) . chr(255);
        $chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";
        $string = strtr($string, $chars['in'], $chars['out']);
        $double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254));
        $double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th');
        $string = str_replace($double_chars['in'], $double_chars['out'], $string);
    }
    return $string;
}
Example #23
0
	public function __construct() {
		parent::__construct();
		$this->config = pc_base::load_config('system');
		/*判断应用字符集和phpsso字符集是否相同,如果不相同,转换用户名为phpsso所用字符集*/
		$this->username = isset($this->data['username']) ? $this->data['username'] : '';

		if ($this->username && CHARSET != $this->applist[$this->appid]['charset']) {
			if($this->applist[$this->appid]['charset'] == 'utf-8') {	//判断应用字符集是否为utf-8编码
				//应用字符集如果是utf-8,并且用户名是utf-8编码,转换用户名为phpsso字符集,如果为英文,is_utf8返回false,不进行转换
				if(is_utf8($this->username)) {
					$this->username = iconv($this->applist[$this->appid]['charset'], CHARSET, $this->username);
				}
			} else {
				if(!is_utf8($this->username)) {
					$this->username = iconv($this->applist[$this->appid]['charset'], CHARSET, $this->username);
				}
			}
		}
	}
Example #24
0
function make_utf8($Str)
{
    if ($Str != '') {
        if (is_utf8($Str)) {
            $Encoding = 'UTF-8';
        }
        if (empty($Encoding)) {
            $Encoding = mb_detect_encoding($Str, 'UTF-8, ISO-8859-1');
        }
        if (empty($Encoding)) {
            $Encoding = 'ISO-8859-1';
        }
        if ($Encoding == 'UTF-8') {
            return $Str;
        } else {
            return @mb_convert_encoding($Str, 'UTF-8', $Encoding);
        }
    }
}
 /**
  *Ajax检测商机名称
  *
  **/
 public function check()
 {
     import("@.ORG.SplitWord");
     $sp = new SplitWord();
     $m_business = M('Business');
     $useless_words = array(L('COMPANY'), L('LIMITED'), L('DI'), L('LIMITED_COMPANY'));
     if ($this->isAjax()) {
         $split_result = $sp->SplitRMM($_POST['name']);
         if (!is_utf8($split_result)) {
             $split_result = iconv("GB2312//IGNORE", "UTF-8", $split_result);
         }
         $result_array = explode(' ', trim($split_result));
         if (count($result_array) < 2) {
             $this->ajaxReturn(0, '', 0);
             die;
         }
         foreach ($result_array as $k => $v) {
             if (in_array($v, $useless_words)) {
                 unset($result_array[$k]);
             }
         }
         $name_list = $m_business->getField('name', true);
         $seach_array = array();
         foreach ($name_list as $k => $v) {
             $search = 0;
             foreach ($result_array as $k2 => $v2) {
                 if (strpos($v, $v2) > -1) {
                     $v = str_replace("{$v2}", "<span style='color:red;'>{$v2}</span>", $v, $count);
                     $search += $count;
                 }
             }
             if ($search > 2) {
                 $seach_array[$k] = array('value' => $v, 'search' => $search);
             }
         }
         $seach_sort_result = array_sort($seach_array, 'search', 'desc');
         if (empty($seach_sort_result)) {
             $this->ajaxReturn(0, L('ABLE_ADD'), 0);
         } else {
             $this->ajaxReturn($seach_sort_result, L('CUSTOMER_IS_CREATED'), 1);
         }
     }
 }
Example #26
0
 public function serialize(&$var)
 {
     if (!isset($var) || $var === NULL) {
         $this->writeNull();
     } elseif (is_scalar($var)) {
         if (is_int($var)) {
             $this->writeInteger($var);
         } elseif (is_bool($var)) {
             $this->writeBoolean($var);
         } elseif (is_float($var)) {
             $this->writeDouble($var);
         } elseif (is_string($var)) {
             if ($var === '') {
                 $this->writeEmpty();
             } elseif (strlen($var) < 4 && is_utf8($var) && ustrlen($var) == 1) {
                 $this->writeUTF8Char($var);
             } elseif (is_utf8($var)) {
                 $this->writeString($var, true);
             } else {
                 $this->writeBytes($var, true);
             }
         }
     } elseif (is_array($var)) {
         if (is_list($var)) {
             $this->writeList($var, true);
         } else {
             $this->writeMap($var, true);
         }
     } elseif (is_object($var)) {
         if ($var instanceof stdClass) {
             $this->writeStdObject($var, true);
         } elseif ($var instanceof HproseDate || $var instanceof HproseDateTime) {
             $this->writeDate($var, true);
         } elseif ($var instanceof HproseTime) {
             $this->writeTime($var, true);
         } else {
             $this->writeObject($var, true);
         }
     } else {
         throw new HproseException('Not support to serialize this data');
     }
 }
Example #27
0
 public function tags_url($tags, $page = null)
 {
     if (empty($tags)) {
         $this->error404();
     }
     if (!is_utf8($tags)) {
         $tags = auto_charset($tags, 'gbk', 'utf-8');
     }
     $_GET['tag'] = $tags;
     $info = $this->model->table('tags')->where('name="' . $tags . '"')->find();
     if ($info['lang'] != model('lang')->langid()) {
         $this->error404();
     }
     if (!$info) {
         $this->error404();
     }
     if (!empty($page)) {
         $_GET['page'] = $page;
     }
     module('tags')->info();
     return;
 }
Example #28
0
 /**
  * 通知应用
  */
 public static function notice($operation, $noticedata, $noticeid)
 {
     $db = self::get_db();
     $applist = getcache('applist', 'admin');
     foreach ($applist as $k => $v) {
         //由于编码转换会改变notice_send的值,所以每次循环需要重新赋值noticedate_send
         $noticedata_send = $noticedata;
         //应用添加用户时不重复通知该应用
         if (isset($noticedata_send['appname']) && $noticedata_send['appname'] == $v['name']) {
             $appstatus[$k] = 1;
             continue;
         }
         $url = $v['url'] . $v['apifilename'];
         if (CHARSET != $v['charset'] && isset($noticedata_send['action']) && $noticedata_send['action'] == 'member_add') {
             if (isset($noticedata_send['username']) && !empty($noticedata_send['username'])) {
                 if (CHARSET == 'utf-8') {
                     //判断phpsso字符集是否为utf-8编码
                     //应用字符集如果是utf-8,并且用户名是utf-8编码,转换用户名为phpsso字符集,如果为英文,is_utf8返回false,不进行转换
                     if (!is_utf8($noticedata_send['username'])) {
                         $noticedata_send['username'] = iconv(CHARSET, $v['charset'], $noticedata_send['username']);
                     }
                 } else {
                     if (!is_utf8($noticedata_send['username'])) {
                         $noticedata_send['username'] = iconv(CHARSET, $v['charset'], $noticedata_send['username']);
                     }
                 }
             }
         }
         $tmp_s = strstr($url, '?') ? '&' : '?';
         $status = ps_send($url . $tmp_s . 'appid=' . $k, $noticedata_send, $v['authkey']);
         if ($status == 1) {
             $appstatus[$k] = 1;
         } else {
             $appstatus[$k] = 0;
         }
     }
     $db->update(array('totalnum' => '+=1', 'appstatus' => json_encode($appstatus)), array('id' => $noticeid));
 }
Example #29
0
function keytype($search_url)
{
    $config = array('谷歌' => array("domain" => "www.google.", "kw" => "q", "charset" => "utf-8", 'type' => 0), '百度' => array("domain" => "www.baidu.", "kw" => "wd", "charset" => "gbk", 'type' => 1), '搜搜' => array("domain" => "soso.", "kw" => "query", "charset" => "gbk", 'type' => 2), '雅虎' => array("domain" => "yahoo.", "kw" => "q", "charset" => "utf-8", 'type' => 3), '必应' => array("domain" => "bing.", "kw" => "q", "charset" => "utf-8", 'type' => 4), '搜狗' => array("domain" => "sogou.", "kw" => "query", "charset" => "gbk", 'type' => 5), '有道' => array("domain" => "youdao.", "kw" => "q", "charset" => "utf-8", 'type' => 6), '360搜索' => array("domain" => "so.360.", "kw" => "q", "charset" => "utf-8", 'type' => 7));
    $arr_key = array();
    foreach ($config as $key => $item) {
        $sh = preg_match("/\\b{$item['domain']}\\b/", $search_url);
        if ($sh) {
            $query = $item['kw'] . "=";
            $s_s_keyword = get_keyword($search_url, $query);
            $F_Skey = urldecode($s_s_keyword);
            $agwe = 0;
            if ($key == '百度') {
                $agwe = get_keyword($search_url, 'ie=');
                $item['charset'] = $agwe == '' ? $item['charset'] : $agwe;
            }
            if ($item['charset'] != "utf-8" && (!is_utf8($F_Skey) || $agwe)) {
                $F_Skey = iconv("gb2312//IGNORE", "UTF-8", $F_Skey);
            }
            $arr_key[0] = $F_Skey;
            $arr_key[1] = $item['type'];
        }
    }
    return $arr_key;
}
Example #30
0
/**
+----------------------------------------------------------
* 字符串截取,支持中文和其他编码
+----------------------------------------------------------
* @static
* @access public
+----------------------------------------------------------
* @param string $str 需要转换的字符串
* @param string $start 开始位置
* @param string $length 截取长度
* @param string $charset 编码格式
* @param string $suffix 截断显示字符
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
*/
function msubstr($str, $start = 0, $length, $charset = "utf-8", $suffix = true)
{
    $str = strip_tags($str, '');
    // Fengzi change at 2010.1.30
    if (is_utf8($str) && strlen_utf8($str) <= $length) {
        return $str;
    }
    // Fengzi change at 2010.3.25
    if (function_exists("mb_substr")) {
        return mb_substr($str, $start, $length, $charset) . "...";
    } elseif (function_exists('iconv_substr')) {
        return iconv_substr($str, $start, $length, $charset) . "...";
    }
    $re['utf-8'] = "/[-]|[�-�][�-�]|[�-�][�-�]{2}|[�-�][�-�]{3}/";
    $re['gb2312'] = "/[-]|[�-�][�-�]/";
    $re['gbk'] = "/[-]|[�-�][@-�]/";
    $re['big5'] = "/[-]|[�-�]([@-~]|�-�])/";
    preg_match_all($re[$charset], $str, $match);
    $slice = join("", array_slice($match[0], $start, $length));
    if ($suffix) {
        return $slice . "...";
    }
    return $slice;
}