(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strimwidthDizgeyi belirtilen genişlikte kırpar


    string $dizge,
    int $başlangıç,
    int $genişlik,
    string $kırpıcı = "",
    ?string $kodlama = null
): string

Belirtilen dizge dizgesini genişlik ile belirtilen genişlikten kırpar. Burada yarım genişlikte karakterler 1, tam genişlikte karakterler 2 sayılır. Doğu Asya karakter genişlikleri ile ilgili ayrıntılar için bkz.» http://www.unicode.org/reports/tr11/

Bağımsız Değişkenler


Kırpılacak dizge.


Kırpma genişliğinin başlatılacağı konum. Dizgenin başından itibaren sayılır. İlk karakterin indisi 0'dır. Negatifse dizgenin sonundan itibaren karater sayısıdır.


Kırpma genişliği. Negatifse dizgenin sonundan itibaren karater sayısıdır.


Dizge kırpılırken dizgenin sonuna eklenen bir dizge.


kodlama bağımsız değişkeninde karakter kodlaması belirtilir. Belirtilmediği takdirde veya null ise dahili karakter kodlaması kullanılır.

Dönen Değerler

Kırpılmış dizge ile döner. kırpıcı belirtilmişse, genişlikinci karakterin yerini alır.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0kodlama artık null olabiliyor.
7.1.0 başlangıçs ve genişlik artık negatif olabiliyor.


Örnek 1 - mb_strimwidth() örneği

= mb_strimwidth($str, 0, 40, "..>");
mb_strimwidth("Hello World", 0, 10, "...");
// output: "Hello W..."


Ayrıca Bakınız

add a note

User Contributed Notes 2 notes

dregad at NOSPAM-mantisbt dot org
1 year ago
I see a lot of usage in the field where people rely on this function to truncate a string to a given length and append some chars at the end following example #1 in the above documentation.

While this works just fine with Western alphabets, it should be noted that a string's width is NOT necessarily the same as its length.

In Chinese, Japanese and Korean, some characters can be represented as full or half width, which may lead to unexpected results...

= ['English' => 'Switzerland',
'Half width' => 'スイス',
'Full width' => 'スイス',
foreach (
$str as $w => $s) {
printf("%-10s: %s (bytes=%d chars=%d width=%d)\nSubstring : %s\nTrim width: %s\n\n",
$w, $s,
strlen($s), mb_strlen($s), mb_strwidth($s),
mb_substr($s, 0, 3),
mb_strimwidth($s, 0, 3)
/* Output
# With ASCII, chars == width, so everything works as expected
English : Switzerland (bytes=11 chars=11 width=11)
Substring : Swi
Trim width: Swi

# With half-width katakanas, it works too
Half width: スイス (bytes=9 chars=3 width=3)
Substring : スイス
Trim width: スイス

# Full-width katakanas are twice as wide, so we only get the 1st 'su' !
Full width: スイス (bytes=9 chars=3 width=6)
Substring : スイス
Trim width: ス
jamesgrimshaw2006 at gmail dot com
9 months ago
mb_strimwidth will only append "trim_marker" if the string is over the width.

*test code*
$HashTags = 'Results';
$socialmediatext = 'abcdefghijklmnopqrstuvwxyz';
for( $i=0; $i<=20; $i++ )
$socialmediatext .= '.';
$Twittext = mb_strimwidth($socialmediatext,0,35,$HashTags);
echo "<p>[".strlen($Twittext)."]$Twittext</p>";

To Top