删除结尾逗号的单词限制器php
我使用的是来自密码点火器的单词限制器。我的数据库为主页弹出了一个字符串,因为它太长,不适合这个代码,所以在末尾添加了一个“…”链接到相应的页面。最近我遇到了一个问题,如果我在某个地方有一个逗号,我们会得到一个“,…”,在我看来,这看起来很混乱。因此,我决定更改代码,以便将字符串限制为一定数量的单词,在这一点上,如果字符串在限制后以逗号结尾,那么我们将限制器数量更改为-1。不幸的是,代码不起作用,我看不出哪里出了问题删除结尾逗号的单词限制器php,php,frameworks,word,Php,Frameworks,Word,我使用的是来自密码点火器的单词限制器。我的数据库为主页弹出了一个字符串,因为它太长,不适合这个代码,所以在末尾添加了一个“…”链接到相应的页面。最近我遇到了一个问题,如果我在某个地方有一个逗号,我们会得到一个“,…”,在我看来,这看起来很混乱。因此,我决定更改代码,以便将字符串限制为一定数量的单词,在这一点上,如果字符串在限制后以逗号结尾,那么我们将限制器数量更改为-1。不幸的是,代码不起作用,我看不出哪里出了问题 // limits a string to X number of wo
// limits a string to X number of words.
function word_limiter($str, $limit = 100, $link_end = '', $end_char = '…')
{
if (trim($str) == '') {
return $str;
}
// modified
$cfc = preg_match('/^\s*+(?:\S++\s*+){1,' . (int) $limit . '}/', $str, $matches);
if (substr($cfc, -1) == ',') {
$limit_minus = $limit-1;
preg_match('/^\s*+(?:\S++\s*+){1,' . (int) $limit_minus . '}/', $str, $matches);
}
if (strlen($str) == strlen($matches[0])) {
$end_char = '';
}
if (empty($link_end)) {
return rtrim($matches[0]) . $end_char;
} else {
$end = '<a href="'.$link_end.'">'.$end_char.'</a>';
return rtrim($matches[0]) . $end;
}
}
//将字符串限制为X个字数。
虚词"limiter($str,$limit=100,$link"end='',$end"字符='&"8230;'))
{
如果(修剪($str)=''){
返回$str;
}
//修改
$cfc=preg_match('/^\s*+(?:\s++\s*+){1',(int)$limit'.}/',$str,$matches);
如果(substr($cfc,-1)=','){
$limit_减=$limit-1;
preg_match('/^\s*+(?:\s++\s*+){1',(int)$limit_减号'}/',$str,$matches);
}
如果(strlen($str)=strlen($matches[0])){
$end_char='';
}
if(空($link_end)){
返回rtrim($matches[0])。$end_char;
}否则{
$end='';
返回rtrim($matches[0])。$end;
}
}
您可以使用PHP的函数
最终代码:
function word_limiter($str, $limit = 100, $link_end = '', $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 = '';
}
if (empty($link_end)) { // if link end is empty do not output a link
return trim(rtrim($matches[0]), ',') . $end_char;
} else {
$end = '<a href="'.$link_end.'">'.$end_char.'</a>';
return trim(rtrim($matches[0]), ',') . $end;
}
}
function word\u limiter($str,$limit=100,$link\u end='',$end\u char='&&8230;)
{
如果(修剪($str)=''){
返回$str;
}
preg_match('/^\s*+(?:\s++\s*+){1',(int)$limit.'}/',$str,$matches);
如果(strlen($str)=strlen($matches[0])){
$end_char='';
}
if(empty($link_end)){//如果link end为空,则不输出链接
返回修剪(rtrim($matches[0]),“,”)。$end_char;
}否则{
$end='';
返回修剪(rtrim($matches[0]),“,”)。$end;
}
}
您可以使用PHP的函数
最终代码:
function word_limiter($str, $limit = 100, $link_end = '', $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 = '';
}
if (empty($link_end)) { // if link end is empty do not output a link
return trim(rtrim($matches[0]), ',') . $end_char;
} else {
$end = '<a href="'.$link_end.'">'.$end_char.'</a>';
return trim(rtrim($matches[0]), ',') . $end;
}
}
function word\u limiter($str,$limit=100,$link\u end='',$end\u char='&&8230;)
{
如果(修剪($str)=''){
返回$str;
}
preg_match('/^\s*+(?:\s++\s*+){1',(int)$limit.'}/',$str,$matches);
如果(strlen($str)=strlen($matches[0])){
$end_char='';
}
if(empty($link_end)){//如果link end为空,则不输出链接
返回修剪(rtrim($matches[0]),“,”)。$end_char;
}否则{
$end='';
返回修剪(rtrim($matches[0]),“,”)。$end;
}
}
也许你可以将它集成到这段代码中,我尝试将它添加到return语句中,但似乎不起作用,可能是一些空白。。请尝试$str=trim(trim($str1),',');非常感谢。我只是把函数写错了。现在它工作了!很简单:duh:也许你可以以某种方式将它集成到这个代码中,我尝试将它添加到return语句中,但它似乎不起作用,可能是一些空白。。请尝试$str=trim(trim($str1),',');非常感谢。我只是把函数写错了。现在它工作了!这么简单:嗯: