过滤 php 变量我想限制来自 php 简单 html dom 解析器中的变量的字符,
$des = 'lorem ipsum domet lorem ipsum dometlorem ipsum dometlorem ipsum dometlorem ipsum dometlorem ipsum dometlorem ipsum dometlorem ipsum dometlorem ipsum dometlorem ipsum dometlorem;
但我想将此文本限制在一个新变量中......所以 $des 将最小化为有限的字符,如 10 个字符。和一个像这样的新变量>$new_des ='lorem ipsu';
有什么想法吗?
问问题
61 次
4 回答
0
用这个:
$new_des = substr($des, 0, 10);
第一个参数是要剪切的字符串,第二个参数显示从哪里剪切(在您的情况下,它是 0,即开始),第三个参数显示要剪切多少个字母。
于 2012-09-15T09:21:17.203 回答
0
为了适应给定的例子:
$new_des = substr($des,0,10)
如果您真的是指“单词”而不是字符:
$new_des = implode(' ', array_slice(str_word_count($des, 1),0,10));
于 2012-09-15T09:22:54.473 回答
0
10个字,还是10个字?它们将以两种不同的方式完成。10个字符只涉及substr函数:
$new_des = substr($des, 0, 10);
http://php.net/manual/en/function.substr.php
对于 10 个单词,它有点复杂。您可能想查看 str_word_count,或者只是简单地用空格分隔,然后从结果数组中重构您的句子:
于 2012-09-15T09:23:06.207 回答
0
来自 CodeIgniter文本助手
还要在同一文件中查找 character_limiter
/**
* Word Limiter
*
* Limits a string to X number of words.
*
* @param string
* @param int
* @param string the end character. Usually an ellipsis
* @return string
*/
function word_limiter($str, $limit = 100, $end_char = '…')
{
if (trim($str) === '')
{
return $str;
}
preg_match('/^\s*+(?:\S++\s*+){1,'.(int) $limit.'}/', $str, $matches);
if (strlen($str) === strlen($matches[0]))
{
$end_char = '';
}
return rtrim($matches[0]).$end_char;
}
于 2012-09-15T09:23:31.167 回答