一个中文字符串截取函数,巨爽~~~!

 更新时间:2016年11月25日 15:20  点击:1241
PHP代码:--------------------------------------------------------------------------------
<?php
/**
***@Author:LAD
***@URL :<a href="http://www.cnpik.com/" target="_blank">http://www.cnpik.com/</a>
***@E_mail:lianxiwoo@sohu.com
***@随便用,不收钱 :-)
*/
function cnSubStr($string,$sublen)
{
if($sublen>=strlen($string))
{
return $string;
}
$s="";
for($i=0;$i<$sublen;$i++)
{
if(ord($string{$i})>127)
{
$s.=$string{$i}.$string{++$i};
continue;
}else{
$s.=$string{$i};
continue;
}
}
return $s;
}// End Function cnSubStr($string,$sublen)
/////////// Use like this :
echo "<p>__________________________<p>";
$string="242432反对感是456犯得上广泛大使馆地方7890";
$sublen=strlen($string);
$len=20;
echo $string."<p>";
echo "总长为:".($sublen+1)."<p>";
echo "截取数:".$len."<p>";
for($i=1;$i<=$sublen+1;$i++){
if($i>$len){
echo $i."<b> →</b> ".cnSubStr($string,$i)."…<br>";
continue;
}
echo $i."<b> →</b> ".cnSubStr($string,$i)."<br>";
}
?>

数据表参考:
代码:--------------------------------------------------------------------------------
CREATE TABLE `mf_sort` (
`sortid` SMALLINT( 3 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`main` TINYINT( 2 ) UNSIGNED NOT NULL ,
`parentid` SMALLINT( 3 ) UNSIGNED NOT NULL ,
`layer` SMALLINT( 3 ) UNSIGNED NOT NULL ,
`orders` TINYINT( 2 ) UNSIGNED NOT NULL ,
`sort` VARCHAR( 100 ) NOT NULL ,
PRIMARY KEY ( `sortid` ) ,
INDEX ( `main` , `parentid` , `layer` , `orders` )
);
--------------------------------------------------------------------------------
关键的函数
PHP代码:--------------------------------------------------------------------------------
function get_main_layer_orders($parentid)
{
global $x_db;
$sql = "select `main`, `layer`, `orders` ";
$sql .= "from `mf_sort` ";
$sql .= "where `postid`='$parentid'";
$x_db->exec($sql);
$data = $x_db->get_data();
$layer = $data[0]['layer']+1;
$main = $data[0]['main'];
$orders = $data[0]['orders'];
$sql = "select `sortid` from `mf_sort` ";
$sql .= "where `parentid`='$parentid'";
$x_db->exec($sql);
$n = $x_db->n;
if ($n>0)
{
$lastid = $parentid;
get_lastid($lastid);
$sql = "select `orders` from `mf_sort` ";
$sql .= "where `sortid`='$lastid'";
$x_db->exec($sql);
$data = $x_db->get_data();
$orders = $data[0][0];
$sql = "update `mf_sort` ";
$sql .= "set `orders`=`orders`+1 ";
$sql .= "where `orders`>$orders and `main`='$main'";
$x_db->exec($sql);
$orders = $orders + 1;
return array($main, $layer, $orders);
}
PHP代码:--------------------------------------------------------------------------------
function make_seed() {
list($usec, $sec) = explode(' ', microtime());
return(float) $sec +((float) $usec * 100000);
}
srand(make_seed());
/* 开启加密算法/ */
$td = mcrypt_module_open('twofish', ', 'ecb', ');
/* 建立 IV,并检测 key 的长度 */
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* 生成 key */
$key = substr(md5('very secret key'), 0, $ks);
/* 初始化加密程序 */
mcrypt_generic_init($td, $key, $iv);
/* 加密, $encrypted 保存的是已经加密后的数据 */
print $encrypted = mcrypt_generic($td, 'This is very important data');
/* 检测加密句柄 */
mcrypt_generic_deinit($td);
/* 初始化加密模块,用以解密 */
mcrypt_generic_init($td, $key, $iv);
/* 解密 */
$decrypted = mdecrypt_generic($td, $encrypted);
/* 检测解密句柄,并关闭模块 */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
/* 显示原始字符串 */
echo trim($decrypted)." ";

PHP代码:--------------------------------------------------------------------------------
CREATE TABLE `jb_administrators` (
`administratorsID` int(10) unsigned NOT NULL auto_increment,
`userID` mediumint(6) unsigned NOT NULL default '0',
`administratorsGroupID` int(10) unsigned NOT NULL default '0',
`administratorsName` varchar(50) NOT NULL default ',
`password` varchar(32) NOT NULL default ',
`email` varchar(50) NOT NULL default ',
`ipAddress` varchar(32) NOT NULL default ',
`isAdministrators` enum('y','n') NOT NULL default 'n',
`orderByID` int(10) unsigned NOT NULL default '0',
`createDate` bigint(14) unsigned NOT NULL default '0',
PRIMARY KEY (`administratorsID`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
#
# 导出表中的数据 `jb_administrators`
#
INSERT INTO `jb_administrators` VALUES (1, 1, 1, 'sky', 'sky', ', ', 'n', 0, 0);
# --------------------------------------------------------
#
# 表的结构 `jb_administratorsoption`
#
# 创建时间: 2003 年 07 月 16 日 15:02
# 最后更新时间: 2003 年 07 月 16 日 15:23
#
CREATE TABLE `jb_administratorsoption` (
`administratorsOptionID` int(8) NOT NULL auto_increment,
`userID` mediumint(6) unsigned NOT NULL default '0',
`optionFieldName` varchar(50) NOT NULL default ',
`length` tinyint(2) unsigned NOT NULL default '40',
`rows` tinyint(2) unsigned NOT NULL default '4',
`types` varchar(10) NOT NULL default ',
`isPublic` enum('y','n') NOT NULL default 'y',
`orderByID` int(8) unsigned NOT NULL default '0',
PRIMARY KEY (`administratorsOptionID`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;
#
# 导出表中的数据 `jb_administratorsoption`
#
INSERT INTO `jb_administratorsoption` VALUES (8, 1, '57777', 40, 50, 'text', 'y', 8);
INSERT INTO `jb_administratorsoption` VALUES (9, 1, '联系电话', 40, 0, 'text', 'y', 9);
# --------------------------------------------------------
·不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的其实是同一门语言;
·不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
·会用Visual C++,并不说明你会C++,所以光看Visual C++的书,是学不了C++语言的;
·学class并不难,template、STL、generic programming也不过如此,难的是长期坚持实践和不遗余力的博览群书;
·如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;
·把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
·看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
·别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;【书读百遍,其意自现】
·不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;
·和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;
·请看《程序设计实践》,并严格的按照其要求去做;
·不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;
·学习编程的秘诀是:编程,编程,再编程;
·记住:面向对象技术不只是C++专有的;
·请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;
·把在书中看到的有意义的例子扩充;
·请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;
·经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;
·不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;
·C++语言和C++的集成开发环境要同时学习和掌握;
·就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;
· 当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写;
· 别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;
· 每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;【教学相长】
[!--infotagslink--]

相关文章

  • C#中截取字符串的的基本方法详解

    这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • c#中判断字符串是不是数字或字母的方法

    这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
  • PostgreSQL判断字符串是否包含目标字符串的多种方法

    这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
  • 详解C++ string常用截取字符串方法

    这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • php字符串按照单词逐个进行反转的方法

    本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
  • C#实现字符串转换成字节数组的简单实现方法

    这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
  • 使用list stream: 任意对象List拼接字符串

    这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
  • C# 16 进制字符串转 int的方法

    这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 获取中文字符串的实际长度代码

    JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1;...2014-06-07
  • PostgreSQL 字符串处理与日期处理操作

    这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
  • php 中英文混合字符串截取

    文章介绍一个实用的函数,我们如果用php substr来截取字符在中文上处理的很有问题,今天自己写了一个比较好的中文与英文字符截取的函数,有需要的朋友可以参考下。 ...2016-11-25
  • C#实现对字符串进行大小写切换的方法

    这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • c#将字节数组转成易读的字符串的实现

    这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • C#获取字符串后几位数的方法

    这篇文章主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 解决vue字符串换行问题(绝对管用)

    这篇文章主要介绍了解决vue字符串换行问题(绝对管用),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-06
  • C#判断一个字符串是否是数字或者含有某个数字的方法

    这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 【C#基础】Substring截取字符串的方法小结(推荐)

    这篇文章主要介绍了Substring截取字符串方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 使用PHP similar text计算两个字符串相似度

    在网站开发中,我们经常使用php similar text 计算两个字符串相似度;1,similar_text的用法 如果我想计算"ly89cn"和"ly89"的相似程度,有两种表示方法复制代码 代码如下: echo similar_text('ly89cn', 'ly89'); ...2015-11-08
  • C#实现将字符串转换成日期格式的方法

    这篇文章主要介绍了C#实现将字符串转换成日期格式的方法,涉及C#操作时间及字符串的相关技巧,非常简单实用,需要的朋友可以参考下...2020-06-25