Re: strpos() act funny when searching for "]]>"....
| From: | Scott Fletcher | Date: | Fri, 21 Nov 2003 16:37:30 +0000 |
| Subject: | Re: strpos() act funny when searching for "]]>".... | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-170590@lists.php.net to get a copy of this message | ||
Ah! Found the problem... It is probably a bug with strpos() because it
seem to get stuck in there and couldn't get out of it somehow. The
workaround the problem I did was just easily increment the $HTML_End by 1
and that fixed the problem. It look like this...
--snip--
$XML_Start = (strpos($res_str,"<![CDATA[")+9);
$HTML_Start = (strpos($res_str,"<![CDATA[",$XML_Start)+9);
$HTML_End = strpos($res_str,"]]>",$HTML_Start);
$HTML_End += 1;
$XML_End = strpos($res_str,"]]>",$HTML_End);
--snip--
Thanks all for the quick feedback! I appreciate it!
Scott F.
"Scott Fletcher" <scott@abcoa.com> wrote in message
news:20031121160829.25651.qmail@pb1.pair.com...
> Um, it seem to work. That's weird. Should have check for the string
length
> first, so I wasn't looking at the same problem. So, I did further
debugging
> and I'm going to post the script here. Still don't know what is the
problem
> here...
>
> --snip--
> $XML_Start = (strpos($res_str,"<![CDATA[")+9);
> $HTML_Start = (strpos($res_str,"<![CDATA[",$XML_Start)+9);
> $HTML_End = strpos($res_str,"]]>",$HTML_Start);
> $XML_End = strpos($res_str,"]]>",$HTML_End);
>
> echo $XML_Start." ***XML Start<br>";
> echo $XML_End." ***XML End<br><br>";
> echo $HTML_Start." ***HTML Start<br>";
> echo $HTML_End." ***HTML End<br>";
>
> echo strlen($res_str);
> --snip--
>
> The response I got here is...
>
> --snip--
> 319 ***XML Start
> 119843 ***XML End
>
> 25650 ***HTML Start
> 119843 ***HTML End
> 120015
> --snip--
>
> As we see, the number for $XML_End and $HTML_End are the same which is
> not correct because there are two seperate "]]>" near the end of hte
string.
> So, I still don't know what hte problem is...
>
> Scott F.
>
> "Curt Zirzow" <php-general@zirzow.dyndns.org> wrote in message
> news:20031121160303.GD42976@bagend.shire...
> > * Thus wrote Scott Fletcher (scott@abcoa.com):
> > > strpos() is acting a little bit funny. When I do this...
> > >
> > > --snip--
> > > $a = strpos($data,"]]>");
> > > --snip--
> > >
> > > Problem is there are "]]>" characters in the $data string and it just
> > > doesn't see it. Anyone know why and what is the workaround to it?
> >
> > It works perfectly fine:
> >
> > $data = 'asdf ]]> asdf';
> > $a = strpos($data,"]]>");
> > print $a; //output: 5
> >
> >
> > Curt
> > --
> > "My PHP key is worn out"
> >
> > PHP List stats since 1997:
> > http://zirzow.dyndns.org/html/mlists/