Bir kelime değil, bir karakter üzerinde kesin PHP substr bitirir Yapımı

4 Cevap php

Ben bir kelime ile bir dize yarım substr fonksiyonunu ancak bu irade mutlu sona nasıl kullanacağımı biliyorum. Ben bunu nasıl yapıyor hakkında gitmek bir kelimenin sonunda bitecek dize istiyorsun? Düzenli ifade ihtimalim var mı? Herhangi bir yardım çok takdir.

Bu ben bugüne kadar ne var. Sadece substr ...

echo substr("$body",0,260);

Şerefe

4 Cevap

Bu regex ile yapılabilir, böyle bir şey bir kelime sınırına kadar dizenin başından itibaren 260 karaktere kadar alacak:

$line=$body;
if (preg_match('/^.{1,260}\b/s', $body, $match))
{
    $line=$match[0];
}

Alternatif olarak, belki çizgiler halinde $ vücut kırmak için wordwrap fonksiyonunu kullanabilirsiniz, o zaman sadece ilk çizgi ayıklamak.

Bu deneyebilirsiniz:

   $s = substr($string, 0, 261);
   $result = substr($s, 0, strrpos($s, ' '));

Bunu yapabilirdi: üzerine 260 karakter ilk yer bulun ve ürün işareti olarak kullanmayın:

$pos = strpos($body, ' ', 260);
if ($pos !== false) {
    echo substr($body, 0, $pos);
}

Ben bu çözümü kullanabilirsiniz:

$maxlength = 50;
substr($name, 0, ($spos = strpos($name, ' ', $lcount = count($name) > $maxlength ? $lcount : $maxlength)) ? $spos : $lcount );

Veya inline:

substr($name, 0, ($spos = strpos($name, ' ', $lcount = count($name) > 50 ? $lcount : 50)) ? $spos : $lcount );