Bir dize uzun bir kelimeyi kaldırmak için nasıl

5 Cevap php

Bir kullanıcı türleri gerçekten çok uzun bir dize ise bir 2 hat üzerine hareket etmez ve sitemde bir sayfa kıracak. Bunu nasıl dize alıyoruz ve bir URL değilse tamamen kaldırabilirsiniz?

5 Cevap

Neden kullanıcının yazdıklarını kaldırmak istersiniz? Bunun yerine, yeni bir satıra kaydırmak - wordwrap denen yapmak için PHP bir işlevi vardır

Eğer gerçekten sözcüğü kaldırmak istiyor musunuz, yoksa sadece sayfa düzeni çok geniş yapmasını engellemek istiyorsun? Ikincisi daha istediğiniz ne ise, taşma yönetmek için CSS kullanarak düşünün.

Örneğin:

div { overflow:hidden; }

div sınırını herhangi bir içerik gizler.

Here's more info on CSS overflow: http://www.w3schools.com/css/pr_pos_overflow.asp

// remove words over 30 chars long
$str = preg_replace('/\S{30,}/', '', $str);

edit: Tim P önerisine göre güncellenmiş, \ S (aynı [^\s]) herhangi bir boşluk olmayan karakter maçlar

Ayrıca burada wordwrap kullanmak ehdv önerisini içeren daha iyi bir yoldur:

//This will break up the long words with spaces so they don't stretch layouts.
$str = preg_replace('/(\S{30,})/e', "wordwrap('$1', 30, ' ', true)", $str);

Ne gerçekten uzun bir URL ise? Herhangi bir oranda neden sadece geçerli bir URL'ye metin maç, ve sadece bu kabul etmiyor? some php-regex info on URLs kontrol ve görmek nasıl çalışır. Regular Expressions Cookbook, hem de URL eşleştirme iyi bir bölüm vardır.

@ Regex kullanarak Rob bakım. Performans gözcü.