Checking for content in string creates time-out?? [message #170015] |
Tue, 05 October 2010 16:05 |
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>• </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 |
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>• </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 |
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
|
|
|