限制从数据库字段检索的字符

时间:2012-09-14 11:15:12

标签: php string character echo

对于PHP来说,我是一个新手。

我正在使用带有ACF(高级自定义字段)的Wordpress,因此我从字段中获得的任何数据都使用以下代码:

echo $fieldname;

其中一个字段是关于某些内容的信息,我想要做的是限制检索的字符数量,以便只显示150个字符。

任何人都知道如何做到这一点?

3 个答案:

答案 0 :(得分:3)

您可以使用substr

执行此操作
$str = "Aliquam odio eros, consectetur eu euismod faucibus, venenatis lobortis nulla. Pellentesque libero massa, bibendum in tempus ut, pretium et ante. In bibendum volutpat porta. ";

echo substr($str, 0, 150);

但是如果你有一个很长的字符串,那么你可能想要在一个单词之后删除它。您可以使用以下函数(当它长到并将...置于其后面时,它将剪切str):

function truncate_string($str, $length) {
    if (!(strlen($str) <= $length)) {
        $str = substr($str, 0, strpos($str, ' ', $length)) . '...';
    }

    return $str;
}

客户端

您也可以在客户端进行此操作。 我不知道你想要实现什么,但如果它是一个标题或者其他东西并且你不希望它太长并破坏你的布局那么你可以使用CSS3 text-overflowjsFiddle example < / p>

答案 1 :(得分:0)

您可以在PHP中使用substr

$fieldname = substr($fieldname, 0, 150); 

或只是

echo substr($fieldname, 0, 150);

或者,限制数据库查询返回的字符数,例如MySQL和MS SQL都有一个LEFT(..)函数,它将限制返回的数据。

SELECT LEFT(FieldName, 150) AS FieldName FROM MyTable WHERE ...

答案 2 :(得分:0)

如果你关心剪切,这样你就不想在单词中剪切句子,你就可以使用这个函数:

function safeShrinkText($text, $length = 100, $suffix = '...')
{
    $text = strip_tags($text);
    if ($length > strlen($text)) {
        return $text;
    }

    while (!isset($text[$length]) || $text[$length] != ' ' && $length != 0) {
        $length--;
    }

    return mb_substr($text, 0, $length) . $suffix;
}

此功能不会删除单词内的句子。