php中有几个截取字符创的函数?

字符串

函数名 作用 php版本
chr() 从指定的 ASCII 值返回字符。 3
chunk_split() 把字符串分割为一连串更小的部分。 3
count_chars() 返回字符串所用字符的信息。 4
explode() 把字符串打散为数组。 3
implode() 把数组元素组合为一个字符串。 3
join() implode() 的别名。 3
levenshtein() 返回两个字符串之间的 Levenshtein 距离。 3
localeconv() 返回包含本地数字及货币信息格式的数组。 4
ltrim() 从字符串左侧删除空格或其他预定义字符。 3
md5() 计算字符串的 MD5 散列。 3
md5_file() 计算文件的 MD5 散列。 4
metaphone() 计算字符串的 metaphone 键。 4
money_format() 把字符串格式化为货币字符串。 4
nl_langinfo() 返回指定的本地信息。 4
nl2br() 在字符串中的每个新行之前插入 HTML 换行符。 3
number_format() 通过千位分组来格式化数字。 3
parse_str() 把查询字符串解析到变量中。 3
print() 输出一个或多个字符串。 3
printf() 输出格式化的字符串。 3
similar_text() 计算两个字符串的匹配字符的数目。 3
sprintf() 把格式化的字符串写写入一个变量中。 3
str_ireplace() 替换字符串中的一些字符。(对大小写不敏感) 5
str_replace() 替换字符串中的一些字符。(对大小写敏感) 3
str_split() 把字符串分割到数组中。 5
strcasecmp() 比较两个字符串。(对大小写不敏感) 3
strchr() 搜索字符串在另一字符串中的第一次出现。strstr() 的别名 3
strcspn() 返回在找到任何指定的字符之前,在字符串查找的字符数。 3
stripos() 返回字符串在另一字符串中第一次出现的位置(大小写不敏感) 5
stristr() 查找字符串在另一字符串中第一次出现的位置(大小写不敏感) 3
strlen() 返回字符串的长度。 3
strpbrk() 在字符串中搜索指定字符中的任意一个。 5
strpos() 返回字符串在另一字符串中首次出现的位置(对大小写敏感) 3
strrchr() 查找字符串在另一个字符串中最后一次出现的位置。 3
strripos() 查找字符串在另一字符串中最后出现的位置(对大小写不敏感) 5
strrpos() 查找字符串在另一字符串中最后出现的位置(对大小写敏感) 3
strspn() 返回在字符串中包含的特定字符的数目。 3
strstr() 搜索字符串在另一字符串中的首次出现(对大小写敏感) 3
strtok() 把字符串分割为更小的字符串。 3
strtr() 转换字符串中特定的字符。 3
substr() 返回字符串的一部分。 3
substr_compare() 从指定的开始长度比较两个字符串。 5
substr_count() 计算子串在字符串中出现的次数。 4
substr_replace() 把字符串的一部分替换为另一个字符串。 4
ucwords() 把字符串中每个单词的首字符转换为大写。 3
wordwrap() 按照指定长度对字符串进行折行处理。 4
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-10

php字符串截取函数可分为英文截取和中文截取:


    php截取英文字符串的函数事例substr()函数

 <?php
  //构造字符串
  $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  echo "原字符串:".$str."";
  //按各种方式进行截取
  $str1 = substr($str,5);
  echo "从第5个字符开始取至最后:".$str1."";
  $str2 = substr($str,9,4);
  echo "从第9个字符开始取4个字符:".$str2."";
  $str3 = substr($str,-5);
  echo "取倒数5个字符:".$str3."";
  $str4 = substr($str,-8,4);
  echo "从倒数第8个字符开始向后取4个字符:".$str4."";
  $str5 = substr($str,-8,-2);
  echo "从倒数第8个字符开始取到倒数第2个字符为止:".$str5."";
 ?>


    php截取中文字符串长度的mb_substr()、mb_strcut()函数

    <?php
    echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8');
    ?>
    输出:这样一来我的字

    <?php
    echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7,'utf-8');
    ?

第2个回答  2015-11-05
strlen() 函数返回字符串的长度,以字符计

<?php
echo strlen("Hello world!");
?>

以上代码的输出是:12
第3个回答  2012-12-17
PHP截取中文字符串,UTF-8、GBK
function substring($str, $start, $len) {
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i++) {
if(ord(substr($str, $i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i, 2);
$i++;
} else
$tmpstr .= substr($str, $i, 1);
}
return $tmpstr;
}
====================================

<?php
function c_substr($string, $from, $length = null){
preg_match_all('/[\x80-\xff]?./', $string, $match);
if(is_null($length)){
$result = implode('', array_slice($match[0], $from));
}else{
$result = implode('', array_slice($match[0], $from, $length));
}
return $result;
}
$str = "zhon华人min共和guo";
$from = 3;
$length = 7;
echo(c_substr($str, $from, $length));
// 输出: n华人min共
//还有utf-8的
/*
Regarding windix's function to handle UTF-8 strings:
one can use the "u" modifier on the regular expression so that the pattern string is treated as UTF-8
(available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32).
This way the function works for other encodings too (like Greek for example).
The modified function would read like this:
*/
function utf8_substr($str,$start) {
$null = "";
preg_match_all("/./u", $str, $ar);
if(func_num_args() >= 3) {
$end = func_get_arg(2);
return join($null, array_slice($ar[0],$start,$end));
} else {
return join($null, array_slice($ar[0],$start));
}
}
?>

===========================================
<?php
/**
***@Author:LAD
***@URL :<a href="http://www.cnpik.com/" target="_blank">http://www.cnpik.com/</a>
***@E_mail:[email protected]
***@随便用,不收钱 :-)
*/

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>";
}

?>本回答被提问者采纳