As a substitute for substr, you might want to give a regex a chance.. have
no clue if it's faster, but it might just be.

        /^.{2}(.{0,8})/

would be your regex if you want to start at offset THREE and take out a MAX
EIGHT char string (remove the 0 and get ONLY EIGHT char strings). Not sure
if PHP sets $1, $2, .. vars, else give the optional third "Matches" param to
preg_match();

Wouter

> -----Oorspronkelijk bericht-----
> Van: Scott Fletcher [mailto:[EMAIL PROTECTED]
> Verzonden: donderdag 20 november 2003 15:44
> Aan: [EMAIL PROTECTED]
> Onderwerp: Re: [PHP] Why is the php loop, 'for()', so slow????
>
>
> Well, should have make one long string to the $res_str variable a lot
> shorter.  :-)
>
> It turned out that the for() loop isn't the slow part when you mentioned
> about substr().  I tried out the while() loop and it is pretty
> much the same
> when the loop take over 5 minutes.  So, it now seem to have to do with
> substr() function.  Yea, I'm not sure what hte best substitute of it would
> be.  In other branches off of this posting, someone said about using the
> strpos().  I'm willing to give this a try but I have problem with this
> because I have two "<!CDATA[[***]]>" tags in it and I want to use
> both, not
> just first one.
>
> Scott
>
> "Chris W. Parker" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
> Scott Fletcher <mailto:[EMAIL PROTECTED]>
>     on Wednesday, November 19, 2003 1:12 PM said:
>
> > function CBC_XML_BreakUp(&$strResponse_XML, &$strResponse_HTML)
> >
> > {
>
> [snip]
>
> Wow I didn't think you were going to post your whole program. :0
>
> 1. Are you sure the for() loop is the slow part?
>
> 2. As someone already suggested, calculating the sizeof() outside of the
> loop should help a lot. Another enhancement is changing your for() to
> while(). (This is a small enhancement but makes a bigger difference as
> your iterations increase.)
>
> REGULAR for() loop construct:
>
> $iMax = 99;
>
> for($iCnt = 0; $iCnt < $iMax; $iCnt++)
> {
> }
>
> OPTIMIZED:
>
> $iMax = 99;
> $iCnt = -1;
>
> while(++$iCnt < $iMax)
> {
> }
>
> Like I said it's only slightly faster, but might make a difference
> depending on your number of iterations.
>
> 3. I think what may be slowing you down is your substr() calls. Maybe
> there is a substitute function that is faster? (I don't have any ideas
> unfortunately.)
>
>
> Let us know if you figure something out.
>
> HTH,
> Chris.
> --
> Don't like reformatting your Outlook replies? Now there's relief!
> http://home.in.tum.de/~jain/software/outlook-quotefix/
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to