Hi!

As a quick hack i just changed the 3499 to 3500 and that fixed it, well at least so 
far.. not to sure what I was thinking when I built that function.

I would like to see the split function you have. 

I did not know about strlen() :-) ...

Jimmy Brake

On Wed, 16 May 2001, Szii wrote:

> I don't understand xcount().
> Instead of xcount(), why not use strlen()?
> 
> Say we have 7100 chars....
> 
> If you step through, first pass
> 
> $i = 0
> $chunk_count = 2
> $start = 0
> $final = 3500
> $text[] is chars 0-3499
> 
> second pass
> 
> $i = 1 // from $i++
> $chunk_count = 2
> $start = 3501 // problem is here - note the endpoint of the last pass in
> $text[]?
> $final = 3499
> $text[] is chars 3501-7000 // what happened to char 3500 itself?
> 
> Remember that substr() takes a start point, and an offset - not an endpoint.
> So after the first pass, you've read in 0-3499 as is correct, but you have
> an extraneous if() clause that inc's your start by one, and then adds 3500.
> 
> Drop the second if($start == 0) clause which sets $start to 1.
> 
> 'Luck
> 
> -Szii
> 
> 
> 
> 
> 
> ----- Original Message -----
> From: "Jimmy Brake" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, May 15, 2001 9:54 PM
> Subject: [PHP-DB] 'the missing character'
> 
> 
> > Hi!
> >
> > Does anyone know of a function in php that will take a chunk of text and
> seperate it into 'chunks' preferably returning it in an array?
> >
> > The reason being is that I have some columns(oracle) that are set to
> varchar2(4000) and I have text that is 4000+ AND :-) I cannot change it to
> another format.
> >
> > I was unable to find a chunk maker so I built one.
> >
> > function chunk_maker($text)
> > {
> >         // have to count the number of characters, if over 3500 characters
> need to split into chunks of 3500 characters
> >         $count = xcount($text);
> >         if($count > 3500)
> >         {
> >                 $chunk_count = $count/3500;
> >                 //need to clean up the $chunk_count by removing the
> trailing decimals and
> >                 //adding one to the total to make sure we do not loose in
> characters
> >                 $chunk_count = floor($chunk_count)+1;
> >                 $i=0;
> >                 $start=0;
> >                 while($i != $chunk_count)
> >                 {
> >                         // err well this helps to make sure we get the
> correct amount of characters
> >                         if($start == 0)
> >                         {
> >                                 $final = 3500;
> >                         } else {
> >                                 $final = 3499;
> >                         }
> >
> >                         //now we need to make the chunks and stick them in
> an array
> >
> >                         $text2[]=substr($text,$start,$final);
> >
> >                         // err well this helps to make sure we get the
> correct amount of characters
> >                         if($start == 0)
> >                         {
> >                                 $start=1;
> >                         }
> >                         $start=$start+3500;
> >                         $i++;
> >                 }
> >         } else {
> >                 $text2[] = $text;
> >         }
> >         return($text2);
> > }
> >
> > function xcount($text)
> > {
> >         global $debug;
> >         foreach (count_chars($text) as $my_value)
> $length=$length+$my_value;
> >         tracker($length);
> >         return($length);
> > }
> >
> >
> > If I just failed to find the right functions please let me know, otherwise
> please help! :-)
> >
> >
> > Jimmy Brake
> >
> >
> > --
> > PHP Database Mailing List (http://www.php.net/)
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > To contact the list administrators, e-mail: [EMAIL PROTECTED]
> 
> 


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to