5

PHPに関しては初心者です。

私は ACF (高度なカスタム フィールド) で Wordpress を使用しているため、フィールドから取得したデータはすべて以下のコードを使用します。

echo $fieldname;

これらのフィールドの 1 つは、何かに関する情報のためのものです。私がやりたいことは、取得する文字数を制限して、150 文字だけが表示されるようにすることです。

誰でもこれを行う方法を知っていますか?

4

3 に答える 3

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の例

于 2012-09-14T11:18:24.470 に答える
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 ...
于 2012-09-14T11:17:14.397 に答える
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;
}

この関数は、単語内の文をカットしません。

于 2012-09-14T11:22:15.020 に答える