تابع chunk_split د رپی چ پی

تابع chunk_split در پی اچ پی یک رشته را به چند رشته کوچک تبدیل میکنه و به صورت زیر در پی اچ پی تعریف شده.

chunk_split ( string $body [, int $chunklen = 76 [, string $end = "\r\n" ]] ) : string

ورودی‌های تابع ‌chunk_split

body: رشته‌ای که قراره تکه تکه بشه.
chunklen:اندازه هر تکه.
end:رشته‌ای حاوی کاراکترهایی که در انتهای هر تکه‌ها درج میکنه.

خروجی این تابع

خروجی این تابع یک رشته است که با تکه‌هایی به اندازه‌ chunklen که در آخر هر تکه رشته‌ی end درج شده است.

مثل همیشه یک مثال میتونه کاربرد تابع را بیشتر و بهتر توضیح بده.


<?php
$data='Hello World';
$new_string = chunk_split($data,2,'/');
echo $new_string;
//output:He/ll/o /Wo/rl/d/
?>

تابع chunk_ برای کاراکترهای تک بایتی کاربرد دارد

یک تابع جایگزین برای رشته‌های utf-8 میتونه به صورت زیر تعریف بشه


<?php
function chunk_split_unicode($str, $l = 76, $e = "\r\n") {
    $tmp = array_chunk(
        preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $l);
    $str = "";
    foreach ($tmp as $t) {
        $str .= join("", $t) . $e;
    }
    return $str;
}

$str = "سلام دنیا";
echo chunk_split($str, 4) ."<br>";
//output:سل ام د� �ی� � 
echo chunk_split_unicode($str,2);
//output:سل ام د نی ا 
?>

و یه کد کوتاه تر برای کاربرد تابع chunk_split برای تکه تکه کردن رشته‌های چند بایتی میتونه به صورت زیر تعریف بشه

<?php
function word_chunk($str, $len = 76, $end = "\n") {
    $pattern = '~.{1,' . $len . '}~u'; // like "~.{1,76}~u"
    $str = preg_replace($pattern, '$0' . $end, $str);
    return rtrim($str, $end);
}

$str = 'سلام دنیا';
echo chunk_split($str, 3) ."\n";
//output:س� �ا م د� �ی ا
echo "<br>";
echo word_chunk($str, 3) . "\n";
//output:سلا م د نیا 
?>

منبع:php.net

بیشتر بخوانید: استخراج بخشی از یک رشته در php

دیدگاه خود را بنویسید