PHP: chunk_split - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

convert_cyr_string chr

Last updated: Sat, 27 Jan 2007

view this page in

# 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.

add a note User Contributed Notes
chunk_split
06-Mar-2007 02:45
`in response to "hansvane at yahoo dot com dot ar"
you can do that ALOT easier:
<?php
function split_hjms_chars($xstr, $xlenint, $xlaststr)
{
return substr($xstr,0,$xlenint).$xlaststr;
}
?>`
hansvane at yahoo dot com dot ar
21-Jan-2007 10:06
`This function is very simple and many other functions make this on PHP 5 and even some ones in 4 the good think about this one is that work on php 3.0.6 and 4
function split_hjms_chars($xstr, $xlenint, $xlaststr)
{
$texttoshow = chunk_split($xstr,$xlenint,"\r\n");
$texttoshow = split("\r\n",$texttoshow);
$texttoshow = $texttoshow[0].$xlaststr;
return $texttoshow;
}
// For use
echo split_hjms_chars("This is your text",6,"...");
// Will return
This i...
It is useful to cut long text on preview lists and if the server it's old.
Hope it helps some one. Hans Svane`
chris AT w3style.co DOT uk
14-Aug-2006 12:32
`I'm not sure what versions this also occurs in but the output of chunk_split() in PHP 5.0.4 does not match the output in other versions of PHP.
In all versions of PHP I have used, apart from 5.0.4 chunk_split() adds the separator (\r\n) to the end of the string. But in PHP 5.0.4 this does not happen. This had a fairly serious impact on a library I maintain so it may also affect others who are not aware of this.`
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:`
add a note
convert_cyr_string chr

Last updated: Sat, 27 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST