-1

过滤 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';
有什么想法吗?

4

4 回答 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,或者只是简单地用空格分隔,然后从结果数组中重构您的句子:

http://php.net/manual/en/function.str-word-count.php

于 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 回答