PHPに関しては初心者です。
私は ACF (高度なカスタム フィールド) で Wordpress を使用しているため、フィールドから取得したデータはすべて以下のコードを使用します。
echo $fieldname;
これらのフィールドの 1 つは、何かに関する情報のためのものです。私がやりたいことは、取得する文字数を制限して、150 文字だけが表示されるようにすることです。
誰でもこれを行う方法を知っていますか?
あなたは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-overflow
:jsFiddleの例
単語内の文を切り取りたくない場合は、次の関数を使用できます。
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;
}
この関数は、単語内の文をカットしません。