Php 构建一个能够用完整单词修剪字符串的函数

Php 构建一个能够用完整单词修剪字符串的函数,php,html,wordpress,codeigniter,Php,Html,Wordpress,Codeigniter,任何人都可以帮助我构建一个PHP函数,该函数能够执行带HTML标记异常的strip_标记,并且只在一个单词的末尾修剪文本 解释 我有这样一个字符串: 更改我的网站中的图片。由管理员支持 我只需要一个功能,能够削减的内容限制。假设我给出的极限在单词的中间结束,我只需要在单词结束后修剪。 P> >我提供的修剪限制为10,可能是10在单词的中间结束查/强>,我需要修饰符必须显示我的全字,如更改 还需要一个选项来从字符串中删除HTML标记,但有一个例外选项 我用的是这样的东西 但是在这里,我得到

任何人都可以帮助我构建一个PHP函数,该函数能够执行带HTML标记异常的strip_标记,并且只在一个单词的末尾修剪文本

解释

我有这样一个字符串:

更改我的网站中的图片。由管理员支持

我只需要一个功能,能够削减的内容限制。假设我给出的极限在单词的中间结束,我只需要在单词结束后修剪。

<> P> <强> >我提供的修剪限制为10,可能是10在单词的中间结束<强>查/强>,我需要修饰符必须显示我的全字,如<强>更改<强>

还需要一个选项来从字符串中删除HTML标记,但有一个例外选项

我用的是这样的东西

但是在这里,我得到了类似于的输出,单击此处更改我需要类似于的输出,单击此处更改


任何人都可以帮助我构建这样的功能???

CodeIgniter有一个非常好的功能,可以实现以下功能:

$str='Thanks for submitting your request.';$part1 = substr($str,0,8);
$strword =explode(' ',str_replace($part1,'',$str));
echo $part1.$strword[0];
/**


* Character Limiter
 *
 * Limits the string based on the character count.  Preserves complete words
 * so the character count may not be exactly as specified.
 *
 * @access  public
 * @param   string
 * @param   integer
 * @param   string  the end character. Usually an ellipsis
 * @return  string
 */
if ( ! function_exists('character_limiter'))
{
    function character_limiter($str, $n = 500, $end_char = '&#8230;')
    {
        if (strlen($str) < $n)
        {
            return $str;
        }

        $str = preg_replace("/\s+/", ' ', str_replace(array("\r\n", "\r", "\n"), ' ', $str));

        if (strlen($str) <= $n)
        {
            return $str;
        }

        $out = "";
        foreach (explode(' ', trim($str)) as $val)
        {
            $out .= $val.' ';

            if (strlen($out) >= $n)
            {
                $out = trim($out);
                return (strlen($out) == strlen($str)) ? $out : $out.$end_char;
            }
        }
    }
}
/**
*字符限制器
*
*基于字符计数限制字符串。保留完整的单词
*因此,字符计数可能与指定的不完全相同。
*
*@access-public
*@param字符串
*@param整数
*@param字符串结束字符。通常是省略号
*@返回字符串
*/
如果(!function_存在('character_limitor'))
{
函数字符&(str,$n=500,$end&&8230;)
{
如果(strlen($str)<$n)
{
返回$str;
}
$str=preg_replace(“/\s+/”,“”,str_replace(数组(“\r\n”,“\r”,“\n”),“”,$str));
如果(strlen($str)=$n)
{
$out=修剪($out);
返回值(strlen($out)==strlen($str))?$out:$out.$end\u char;
}
}
}
}
用法非常简单:

$string ='<p><a href="#">Click here</a> to change the picture in my website.<span>Powered</span><em> By <em> administrator</p>';
$string = strip_tags($string,'<p><a><span>');    
$string = character_limit($string, 35);
$string='更改我的网站中的图片。由管理员提供支持。

'; $string=strip_标签($string,); $string=字符限制($string,35);

您还可以修改该函数,使其具有另一个用于剥离html标记的可选参数。

您尝试了什么?显示代码…显示所需的result@machineaddict现在我正在使用substr($content,0100)来修剪字符串,但这会在不完成的情况下剪切我的单词。所以,你还有其他选择来获取完整的单词吗?请编辑你的问题,并将你说的代码张贴在里面。我还想看看这个问题的答案:)。我只需要在单词结束后进行修剪。在单词之前剪切文本会更合理谢谢你的解决方案。谢谢你的回答:)