FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » Checking for content in string creates time-out??
Show: Today's Messages :: Polls :: Message Navigator
Switch to threaded view of this topic Create a new topic Submit Reply
Checking for content in string creates time-out?? [message #170015] Tue, 05 October 2010 16:05 Go to next message
Mechphisto is currently offline  Mechphisto
Messages: 2
Registered: October 2010
Karma: 0
Junior Member
I'm trying to create an output of an RSS, and it works fine if I don't
check for whether a variable has content or not:

/************************************************
* GET BLOG COMMENTS
********/
$blogCom_filename = 'http://blog.girlscoutsmoheartland.org/?
feed=comments-rss2';
$blogCom_xml = @simplexml_load_file($blogCom_filename);
$ic=0;
while($ic<=10) {
$blogCom_description = $blogCom_xml->channel->item[$ic]->description;
$blogCom_pubTitle = $blogCom_xml->channel->item[$ic]->title;
$blogCom_pubDate = $blogCom_xml->channel->item[$ic]->pubDate;
$blogCom_pubLink = $blogCom_xml->channel->item[$ic]->link;
$blogCom_pubDate = "<span class=''>".date('D, j M y g:i a',
strtotime($blogCom_pubDate))."</span>";

//if ($blogCom_pubTitle) {
$blogCom_disp .= "<p><a href='".$blogCom_pubLink."'
target='_blank'><span class='tiny_import'>".$blogCom_pubTitle."</
span></a>:<br /><b>&#8226;&nbsp;</b>".$blogCom_description."<br />".
$blogCom_pubDate."</p>";
$ic++;
//}

unset($blogCom_description,$blogCom_pubDate);
}
unset($blogCom_filename,$blogCom_xml);


But as soon as I uncomment those two lines in the "if" that checks to
see if $blogCom_pubTitle has any content (if I don't, for some reason
I sometimes get blank comments in the display), I get an error:

Fatal error: Maximum execution time of 30 seconds exceeded in /home/
girlscou/public_html/staff/socialroundup.php on line 41

Weird thing is, the line that's being referenced, is this one:

$blogCom_pubDate = "<span class=''>".date('D, j M y g:i a',
strtotime($blogCom_pubDate))."</span>";

A line that occurs BEFORE the if-statement is magically causing a
timeout only if the if-statement is "on". But works just fine without
the content check.
And if I comment that offending line, it'll still time-out but blame
the next line above it!

I have no clue what's going on. Any suggestions?
Thanks!
Liam
Re: Checking for content in string creates time-out?? [message #170020 is a reply to message #170015] Tue, 05 October 2010 18:00 Go to previous messageGo to next message
Helmut Chang is currently offline  Helmut Chang
Messages: 22
Registered: September 2010
Karma: 0
Junior Member
Am 05.10.2010 18:05, schrieb Mechphisto:
> I'm trying to create an output of an RSS, and it works fine if I don't
> check for whether a variable has content or not:
>
> /************************************************
> * GET BLOG COMMENTS
> ********/
> $blogCom_filename = 'http://blog.girlscoutsmoheartland.org/?
> feed=comments-rss2';
> $blogCom_xml = @simplexml_load_file($blogCom_filename);
> $ic=0;
> while($ic<=10) {
> $blogCom_description = $blogCom_xml->channel->item[$ic]->description;
> $blogCom_pubTitle = $blogCom_xml->channel->item[$ic]->title;
> $blogCom_pubDate = $blogCom_xml->channel->item[$ic]->pubDate;
> $blogCom_pubLink = $blogCom_xml->channel->item[$ic]->link;
> $blogCom_pubDate = "<span class=''>".date('D, j M y g:i a',
> strtotime($blogCom_pubDate))."</span>";
>
> //if ($blogCom_pubTitle) {
> $blogCom_disp .= "<p><a href='".$blogCom_pubLink."'
> target='_blank'><span class='tiny_import'>".$blogCom_pubTitle."</
> span></a>:<br /><b>&#8226;&nbsp;</b>".$blogCom_description."<br />".
> $blogCom_pubDate."</p>";
> $ic++;
> //}
>
> unset($blogCom_description,$blogCom_pubDate);
> }
> unset($blogCom_filename,$blogCom_xml);
>
>
> But as soon as I uncomment those two lines in the "if" that checks to
> see if $blogCom_pubTitle has any content (if I don't, for some reason
> I sometimes get blank comments in the display), I get an error:
>
> Fatal error: Maximum execution time of 30 seconds exceeded in /home/
> girlscou/public_html/staff/socialroundup.php on line 41

Yes, because your loop might run endlessly. Here I reduced it to the
relevant parts:

$ic = 0;
while ($ic <= 10) {
$blogCom_pubTitle = $blogCom_xml->channel->item[$ic]->title;

if ($blogCom_pubTitle) {
$ic++;
}
}

Suppose, $ic == 0 and $blogCom_xml->channel->item[0]->title does not
exist (is empty or whatever): The next time, the loop runs, $ic is still
0 (because the if-condition did not match, it was not incremented). And
$blogCom_xml->channel->item[0]->title is still empty, and...

> Weird thing is, the line that's being referenced, is this one:
>
> $blogCom_pubDate = "<span class=''>".date('D, j M y g:i a',
> strtotime($blogCom_pubDate))."</span>";
>
> A line that occurs BEFORE the if-statement is magically causing a
> timeout only if the if-statement is "on".

That's just the line, where the time limit is reached. Might be another
line the next time you run the loop.

Helmut
Re: Checking for content in string creates time-out?? [message #170022 is a reply to message #170020] Tue, 05 October 2010 18:11 Go to previous message
Mechphisto is currently offline  Mechphisto
Messages: 2
Registered: October 2010
Karma: 0
Junior Member
On Oct 5, 1:00 pm, Helmut Chang <use...@helmutchang.at> wrote:
> Am 05.10.2010 18:05, schrieb Mechphisto:
>
>

[..snip..]

> Suppose, $ic == 0 and $blogCom_xml->channel->item[0]->title does not
> exist (is empty or whatever): The next time, the loop runs, $ic is still
> 0 (because the if-condition did not match, it was not incremented). And
> $blogCom_xml->channel->item[0]->title is still empty, and...

[..snip..]

OH! That makes perfect sense! I can't believe that logic escaped
me. :P
Thanks! :) I appreciate the advice.
Liam
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Stats comp.lang.php (last 7 days)
Next Topic: PHP on PIE: framework that combines the best ideas from great PHP projects
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Wed Nov 27 02:16:27 GMT 2024

Total time taken to generate the page: 0.01942 seconds