php字符串截取:按单词截取字符串,php截取字符串函数

发布时间:2019-11-14编辑:脚本学堂
php截取字符串的方法示例,在php中如何按单词截取字符串,指定字符串和单词数量进行截取,并分享一个php截取字符串的函数,供大家学习参考。

一、php按单词截取字符串

例子,php按单词截取字符串,指定字符串和单词数量进行截取。
 

复制代码 代码示例:
<?php
function limit_words($string, $word_limit)
{
$words = explode(" ",$string);
return implode(" ",array_splice($words,0,$word_limit));
}
//Example Usage
$content = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
echo limit_words($content,20);
?>

二、php截取字符串函数

一个使用php截取字符串的函数

php中的substr函数就可以做的到,只不过php把二个函数合二为一了。

这里分享一个不错的截取字符串的函数。

代码:
 

复制代码 代码示例:
/**
* 方法库-截取字符串-【该函数作者未知】
* @param string  $string 字符串 
* @param int$length 字符长度
* @param string  $dot截取后是否添加...
* @param string  $charset编码
* @return string
*/
public function cutstr($string, $length, $dot = ' ...', $charset = 'utf-8') {
   if (strlen($string) <= $length) {
  return $string;
   }
   $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
   $strcut = '';
   if (strtolower($charset) == 'utf-8') {
  $n = $tn = $noc = 0;
  while ($n < strlen($string)) {
 $t = ord($string[$n]); //ASCII?
 if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
$tn = 1; $n++; $noc++;
 } elseif (194 <= $t && $t <= 223) {
$tn = 2; $n += 2; $noc += 2;
 } elseif (224 <= $t && $t < 239) {
$tn = 3; $n += 3; $noc += 2;
 } elseif (240 <= $t && $t <= 247) {
$tn = 4; $n += 4; $noc += 2;
 } elseif (248 <= $t && $t <= 251) {
$tn = 5; $n += 5; $noc += 2;
 } elseif ($t == 252 || $t == 253) {
$tn = 6; $n += 6; $noc += 2;
 } else {
$n++;
 }
 if($noc >= $length) {
break;
 }
  }
  if ($noc > $length) {
 $n -= $tn;
  }
  $strcut = substr($string, 0, $n);
   } else {
  for ($i = 0; $i < $length; $i++) {
 $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
  }
   }
   $strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut);
   return $strcut.$dot;
}