源码分享站 - 分享有用的

fatfree 展示 utf.php源代码

返回 下载fatfree: 单独下载utf.php源代码 - 下载整个fatfree源代码 - 类型:.php文件
  1. <?php
  2.  
  3. /*
  4.  
  5.         Copyright (c) 2009-2016 F3::Factory/Bong Cosca, All rights reserved.
  6.  
  7.         This file is part of the Fat-Free Framework (http://fatfreeframework.com).
  8.  
  9.         This is free software: you can redistribute it and/or modify it under the
  10.         terms of the GNU General Public License as published by the Free Software
  11.         Foundation, either version 3 of the License, or later.
  12.  
  13.         Fat-Free Framework is distributed in the hope that it will be useful,
  14.         but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.         General Public License for more details.
  17.  
  18.         You should have received a copy of the GNU General Public License along
  19.         with Fat-Free Framework.  If not, see <http://www.gnu.org/licenses/>.
  20.  
  21. */
  22.  
  23. //! Unicode string manager
  24. class UTF extends Prefab {
  25.  
  26.         /**
  27.         *       Get string length
  28.         *       @return int
  29.         *       @param $str string
  30.         **/
  31.         function strlen($str) {
  32.                 preg_match_all('/./us',$str,$parts);
  33.                 return count($parts[0]);
  34.         }
  35.  
  36.         /**
  37.         *       Reverse a string
  38.         *       @return string
  39.         *       @param $str string
  40.         **/
  41.         function strrev($str) {
  42.                 preg_match_all('/./us',$str,$parts);
  43.                 return implode('',array_reverse($parts[0]));
  44.         }
  45.  
  46.         /**
  47.         *       Find position of first occurrence of a string (case-insensitive)
  48.         *       @return int|FALSE
  49.         *       @param $stack string
  50.         *       @param $needle string
  51.         *       @param $ofs int
  52.         **/
  53.         function stripos($stack,$needle,$ofs=0) {
  54.                 return $this->strpos($stack,$needle,$ofs,TRUE);
  55.         }
  56.  
  57.         /**
  58.         *       Find position of first occurrence of a string
  59.         *       @return int|FALSE
  60.         *       @param $stack string
  61.         *       @param $needle string
  62.         *       @param $ofs int
  63.         *       @param $case bool
  64.         **/
  65.         function strpos($stack,$needle,$ofs=0,$case=FALSE) {
  66.                 return preg_match('/^(.{'.$ofs.'}.*?)'.
  67.                         preg_quote($needle,'/').'/us'.($case?'i':''),$stack,$match)?
  68.                         $this->strlen($match[1]):FALSE;
  69.         }
  70.  
  71.         /**
  72.         *       Returns part of haystack string from the first occurrence of
  73.         *       needle to the end of haystack (case-insensitive)
  74.         *       @return string|FALSE
  75.         *       @param $stack string
  76.         *       @param $needle string
  77.         *       @param $before bool
  78.         **/
  79.         function stristr($stack,$needle,$before=FALSE) {
  80.                 return $this->strstr($stack,$needle,$before,TRUE);
  81.         }
  82.  
  83.         /**
  84.         *       Returns part of haystack string from the first occurrence of
  85.         *       needle to the end of haystack
  86.         *       @return string|FALSE
  87.         *       @param $stack string
  88.         *       @param $needle string
  89.         *       @param $before bool
  90.         *       @param $case bool
  91.         **/
  92.         function strstr($stack,$needle,$before=FALSE,$case=FALSE) {
  93.                 if (!$needle)
  94.                         return FALSE;
  95.                 preg_match('/^(.*?)'.preg_quote($needle,'/').'/us'.($case?'i':''),
  96.                         $stack,$match);
  97.                 return isset($match[1])?
  98.                         ($before?
  99.                                 $match[1]:
  100.                                 $this->substr($stack,$this->strlen($match[1]))):
  101.                         FALSE;
  102.         }
  103.  
  104.         /**
  105.         *       Return part of a string
  106.         *       @return string|FALSE
  107.         *       @param $str string
  108.         *       @param $start int
  109.         *       @param $len int
  110.         **/
  111.         function substr($str,$start,$len=0) {
  112.                 if ($start<0)
  113.                         $start=$this->strlen($str)+$start;
  114.                 if (!$len)
  115.                         $len=$this->strlen($str)-$start;
  116.                 return preg_match('/^.{'.$start.'}(.{0,'.$len.'})/us',$str,$match)?
  117.                         $match[1]:FALSE;
  118.         }
  119.  
  120.         /**
  121.         *       Count the number of substring occurrences
  122.         *       @return int
  123.         *       @param $stack string
  124.         *       @param $needle string
  125.         **/
  126.         function substr_count($stack,$needle) {
  127.                 preg_match_all('/'.preg_quote($needle,'/').'/us',$stack,
  128.                         $matches,PREG_SET_ORDER);
  129.                 return count($matches);
  130.         }
  131.  
  132.         /**
  133.         *       Strip whitespaces from the beginning of a string
  134.         *       @return string
  135.         *       @param $str string
  136.         **/
  137.         function ltrim($str) {
  138.                 return preg_replace('/^[\pZ\pC]+/u','',$str);
  139.         }
  140.  
  141.         /**
  142.         *       Strip whitespaces from the end of a string
  143.         *       @return string
  144.         *       @param $str string
  145.         **/
  146.         function rtrim($str) {
  147.                 return preg_replace('/[\pZ\pC]+$/u','',$str);
  148.         }
  149.  
  150.         /**
  151.         *       Strip whitespaces from the beginning and end of a string
  152.         *       @return string
  153.         *       @param $str string
  154.         **/
  155.         function trim($str) {
  156.                 return preg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u','',$str);
  157.         }
  158.  
  159.         /**
  160.         *       Return UTF-8 byte order mark
  161.         *       @return string
  162.         **/
  163.         function bom() {
  164.                 return chr(0xef).chr(0xbb).chr(0xbf);
  165.         }
  166.  
  167.         /**
  168.         *       Convert code points to Unicode symbols
  169.         *       @return string
  170.         *       @param $str string
  171.         **/
  172.         function translate($str) {
  173.                 return html_entity_decode(
  174.                         preg_replace('/\\\\u([[:xdigit:]]+)/i','&#x\1;',$str));
  175.         }
  176.  
  177.         /**
  178.         *       Translate emoji tokens to Unicode font-supported symbols
  179.         *       @return string
  180.         *       @param $str string
  181.         **/
  182.         function emojify($str) {
  183.                 $map=[
  184.                         ':('=>'\u2639', // frown
  185.                         ':)'=>'\u263a', // smile
  186.                         '<3'=>'\u2665', // heart
  187.                         ':D'=>'\u1f603', // grin
  188.                         'XD'=>'\u1f606', // laugh
  189.                         ';)'=>'\u1f609', // wink
  190.                         ':P'=>'\u1f60b', // tongue
  191.                         ':,'=>'\u1f60f', // think
  192.                         ':/'=>'\u1f623', // skeptic
  193.                         '8O'=>'\u1f632', // oops
  194.                 ]+Base::instance()->get('EMOJI');
  195.                 return $this->translate(str_replace(array_keys($map),
  196.                         array_values($map),$str));
  197.         }
  198.  
  199. }
  200.  
单独下载 单独下载utf.php源码 - 下载整个fatfree源程序
相关源码/软件:
TSA-Travel-Sentry-master-keys - TSA 主密钥的 3D 再现 2017-05-12
python3-cookbook - 《Python Cookbook》 3rd Edition Translatio 2017-05-12
isso - Disqus 替代 https://posativ.org/isso/ 2017-05-12
hologram - 降价基于文件系统的风格指南。 http://trulia.github.io... 2017-05-12
www.html5rocks.com - .......a 争创一流资源为 web 开发人员 2017-05-12
rolify - Role management library with resource scoping ... 2017-05-13
jquery-mockjax - JQuery Mockjax 插件提供了简单、 极其灵活的接口,以嘲笑或模拟 ajax 请求和响应 2017-05-13
yo - CLI 工具运行自耕农发电机 http://yeoman.io 2017-05-13
GrowingTextView - UITextView 增长/收缩与文本并开始滚动时的含量达到一定数量的行。类似于苹果在 SMS 应用... 2017-05-13
phan - 潘是 php 的静态分析器。潘倾向于避免误报,并试图证明不正确,而不是正确性。 2017-05-13
CRYENGINE - CRYENGINE 是由 Crytek 创建一个功能强大的实时游戏开发平台。 ... 2017-06-11
postal - 2017-06-11
reactide - Reactide 是反应 web 应用程序开发的第一个专用的 IDE。http://reactide... 2017-06-11
rkt - rkt 是为 Linux 的 pod 本机容器引擎。它是可组合、 安全和建筑标准。 2017-06-11
uWebSockets - 小小的 Websocket https://forest.webvrexpe... 2017-06-11
realworld - 真实的世界-动力反应、 角、 节点,Django,和更多的模范 fullstack Medium.c... 2017-06-11
goreplay - GoReplay 是用于捕获和重播活 HTTP 交通到测试环境以不断地测试您的系统与实际数据的开源工... 2017-06-10
pyenv - 简单的 Python 版本管理 2017-06-10
redux-saga - Redux 应用程序替代副作用模型 https://redux-saga.g... 2017-06-10
angular-starter - 2017-06-10

 返回顶部