Ben çeşitli HTML etiketlerini dizeleri sıyırma olmadan ve HTML bozmadan (elimden içeriğin, orijinal değil) 100 karakter kesmek zorunda.
Original HTML string (288 karakter):
$content = "<div>With a <span class='spanClass'>span over here</span> and a
<div class='divClass'>nested div over <div class='nestedDivClass'>there</div>
</div> and a lot of other nested <strong><em>texts</em> and tags in the air
<span>everywhere</span>, it's a HTML taggy kind of day.</strong></div>";
Standard trim: 100 karakter ve HTML tatili Trim, elimden içerik ~ 40 karakter geliyor:
$content = substr($content, 0, 100)."..."; /* output:
<div>With a <span class='spanClass'>span over here</span> and a
<div class='divClass'>nested div ove... */
Stripped HTML: Çıkışlar doğru karakter sayılmasını ama açıkçası biçimlendirme kaybeder:
$content = substr(strip_tags($content)), 0, 100)."..."; /* output:
With a span over here and a nested div over there and a lot of other nested
texts and tags in the ai... */
Partial solution: etiketleri çıktısı temiz HTML kapatmak için HTML Tidy veya temizleyici kullanıyorum ama HTML 100 karakter gösterilir içerik değil.
$content = substr($content, 0, 100)."...";
$tidy = new tidy; $tidy->parseString($content); $tidy->cleanRepair(); /* output:
<div>With a <span class='spanClass'>span over here</span> and a
<div class='divClass'>nested div ove</div></div>... */
Challenge: çıkışı temiz HTML ve n karakter (HTML öğelerinin karakter sayısı hariç) için:
$content = cutHTML($content, 100); /* output:
<div>With a <span class='spanClass'>span over here</span> and a
<div class='divClass'>nested div over <div class='nestedDivClass'>there</div>
</div> and a lot of other nested <strong><em>texts</em> and tags in the
ai</strong></div>...";
Benzer Sorular