ルート要素を保持し、ブレッドクラムが収まるまで次の要素を削除します。実際には、JavaScriptでこれを行うことをお勧めします。そうすると、ブレッドクラムのピクセル幅を計算するメソッドがありますが、PHPでは、ブレークポイントとして固定数の文字を使用する必要があります。異なる長さ。JSを使用することは、リンクがまだそこにあり、隠されているだけなので、SEOなどにはとにかく良いでしょう。
ブレッドクラムとして単純なリスト要素があると仮定します。
<ul id="breadcrumb">
<li><a href="/">Home</a></li>
<li><a href="/products/">Products</a></li>
<li><a href="/products/hats/">Hats</a></li>
<li><a href="/products/hats/large/">Large</a></li>
<li><a href="/products/hats/large/red/">Red</a></li>
<li><a href="/products/hats/large/red/round/">Round</a></li>
</ul>
次に、次のように長さをトリミングできます(jQueryを使用)。
if($('#breadcrumb').width() > 900) {
$('#breadcrumb li:first').after('<li>...</li>');
while($('#breadcrumb').width() > 900) {
$('#breadcrumb li').eq(2).remove();
}
}
簡単な例で、おそらく機能しませんが、いくつかのアイデアが得られるはずです。
ところで、PHPでトリミングを実行する場合、単純にしたい場合は、ブレッドクラムが形成されているときにそれを実行する必要があります。後でトリミングを開始する場合は、かなり複雑な正規表現を使用するか、プロジェクトに何らかのDOMパーサーを含めてアンカータグをそのまま維持する必要があります。