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:
|
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
|
|
|