chunk_split

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

chunk_split -- Разбивает строку на фрагменты

Описание

string chunk_split ( string body [, int chunklen [, string end]] )

Функция используется для разбиения строки на фрагменты, например, для приведения результата функции base64_encode() в соответствие с требованиями RFC 2045. Она вставляет строку end (по умолчанию "\r\n") после каждых chunklen символов (по умолчанию 76). Возвращает преобразованную строку без изменения исходной.

Пример 1. Пример использования chunk_split()

<?php
// форматирование данных в соответствии с RFC 2045
$new_string = chunk_split(base64_encode($data));
?>

См. также описание функций str_split(), explode(), split(), wordwrap(), и RFC 2045.



chunk_split
xamine at gmail dot com
04-Jun-2006 11:06
In reply to "adrian at zhp dot inet dot pl" digit grouping function:
<?php
   $number
= strrev(chunk_split (strrev($number), 3,' '));
  
//If $number is '1234567', result is '1 234 567'.
?>

There is a much more simple way of doing this, by using the built-in number_format() function.

<?php
   $number
= number_format($number,2,"."," ");

  
//This will round $number to 2 decimals, use the dot (".")
   //as decimal point, and the space (" ") as thousand sepparator.

?>
kevin @t hyguard,com
03-Oct-2005 07:08
Not quite completely obvious, but...

you can un_chunk_split() by:

$long_str = str_replace( "\r\n", "", $chunked_str );
harish at thespitbox dot net
30-Jul-2005 05:45
another way to group thousands in a number, which is much simpler, is built into PHP :)

www.php.net/number_format
adrian at zhp dot inet dot pl
08-Jul-2005 02:28
If you need to output number formated with thousand's separator, just use it:

$number = strrev(chunk_split (strrev($number), 3,' '));

If $number is '1234567', result is '1 234 567'.
Kevin
25-Jun-2005 04:10
To phpkid:

This is a much simpler solution.

<?php
function longWordWrap($string) {
  
$string = str_replace("\n", "\n ", $string); // add a space after newline characters, so that 2 words only seperated by \n are not considered as 1 word
  
$words = explode(" ", $string); // now split by space
  
foreach ($words as $word) {
      
$outstring .= chunk_split($word, 12, " ") . " ";
   }
   return
$outstring;
}
?>
Chris
15-Jun-2005 02:18
@phpkid:

You can avoid such long complex code and just use some CSS stuff.

Just add style="table-layout:fixed" in your <td > tag and your problem will be solved.

ciao
phpkid
28-May-2005 10:47
Well I have been having issues with a shoutbox I am coding it would keep expanding the <TD> if there were large words in it but I fixed it with this:

function PadString($String){
   $Exploded = explode(" ", $String);
   $Max_Parts = count($Exploded);
  
   $CurArray = 0;
   $OutString = '';
   while($CurArray<=$Max_Parts)
   {
       $Peice_Size = strlen($Exploded[$CurArray]);
       if($Peice_Size>15)
       {
           $OutString .= chunk_split($Exploded[$CurArray], 12, " ");
           $CurArray++;
       } else {
           $OutString .= " ".$Exploded[$CurArray];
           $CurArray++;
       }
   }
  
   return $OutString;
}
mv@NOSPAM
24-Jan-2004 07:39
the best way to solve the problem with the last string added by chunk_split() is:

<?php
$string
= '1234';
substr(chunk_split($string, 2, ':'), 0, -1);
// will return 12:34
?>
Danilo
10-Dec-2003 02:51
>> chunk_split will also add the break _after_ the last occurence.

this should be not the problem

substr(chunk_split('FF99FF', 2, ':'),0,8);
will return FF:99:FF
sbarnum at pointsystems dot com
20-Apr-2001 07:46
[Editor's note: You can always use wordwrap('FF99FF', 2, ':', 2); to avoid this]

chunk_split will also add the break _after_ the last occurence.  So, attempting to split a color into base components,
chunk_split('FF99FF', 2, ':');
will return FF:99:FF:

<chrconvert_cyr_string>
 Last updated: Tue, 15 Nov 2005