New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Call to a member function get_uri() on a non-object in simplepie/library/SimplePie/Misc.php on line 83 #214

Closed
ghost opened this Issue Jul 11, 2012 · 44 comments

Comments

Projects
None yet
@ghost

ghost commented Jul 11, 2012

Hi there,

I'm using your very wonderful code but I noticed that I run into this problem:
Call to a member function get_uri() on a non-object in simplepie/library/SimplePie/Misc.php on line 83

I really don't have an idea why this is happening.

Kindly guide me how to fix this one.

Thanks!

@hakimihamdan88

This comment has been minimized.

Show comment
Hide comment
@hakimihamdan88

hakimihamdan88 Jul 14, 2012

yeah, im getting those error too
cc @rmccue

hakimihamdan88 commented Jul 14, 2012

yeah, im getting those error too
cc @rmccue

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 16, 2012

Same here...

ghost commented Jul 16, 2012

Same here...

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 17, 2012

Yeah, too bad no one is answering here. :(

ghost commented Jul 17, 2012

Yeah, too bad no one is answering here. :(

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 17, 2012

When I enter this URL: http://bfgb.wordpress.com/feed/
I get this error: Fatal error: Call to a member function get_uri() on a non-object in D:\xampp\htdocs\simplepie\library\SimplePie\Misc.php on line 83

What's the problem?!

ghost commented Jul 17, 2012

When I enter this URL: http://bfgb.wordpress.com/feed/
I get this error: Fatal error: Call to a member function get_uri() on a non-object in D:\xampp\htdocs\simplepie\library\SimplePie\Misc.php on line 83

What's the problem?!

@Xeoncross

This comment has been minimized.

Show comment
Hide comment
@Xeoncross

Xeoncross Jul 18, 2012

I just got this error using a fresh git checkout on an Ubuntu box.

PHP Fatal error:  Call to a member function get_uri() on a non-object in /path/git/simplepie/library/SimplePie/Misc.php on line 83
PHP Stack trace:
PHP   9. SimplePie_Item->get_permalink() /path/News/Bootstrap.php:89
PHP  10. SimplePie_Item->get_link() /path/git/simplepie/library/SimplePie/Item.php:929
PHP  11. SimplePie_Item->get_links() /path/git/simplepie/library/SimplePie/Item.php:955
PHP  12. SimplePie_Item->get_base() /path/git/simplepie/library/SimplePie/Item.php:1007
PHP  13. SimplePie->get_base() /path/git/simplepie/library/SimplePie/Item.php:167
PHP  14. SimplePie->get_link() /path/git/simplepie/library/SimplePie.php:1922
PHP  15. SimplePie->get_links() /path/git/simplepie/library/SimplePie.php:2270
PHP  16. SimplePie->sanitize() /path/git/simplepie/library/SimplePie.php:2344
PHP  17. SimplePie_Sanitize->sanitize() /path/git/simplepie/library/SimplePie.php:1944
PHP  18. SimplePie_Registry->call() /path/git/simplepie/library/SimplePie/Sanitize.php:359
PHP  19. call_user_func_array() /path/git/simplepie/library/SimplePie/Registry.php:206
PHP  20. SimplePie_Misc::absolutize_url() /path/git/simplepie/library/SimplePie/Registry.php:0

Perhaps change Misc.php since SimplePie_IRI::absolutize can return false.

public static function absolutize_url($relative, $base)
{
    $iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative);
    // return $iri->get_uri();
    if($iri) return $iri->get_uri();
}

However, making that change results in:

PHP Notice: This XML document is invalid, likely due to invalid characters. XML error: > required at line 1110, column 141 in /home/david/www/git/simplepie/library/SimplePie.php on line 1374

Xeoncross commented Jul 18, 2012

I just got this error using a fresh git checkout on an Ubuntu box.

PHP Fatal error:  Call to a member function get_uri() on a non-object in /path/git/simplepie/library/SimplePie/Misc.php on line 83
PHP Stack trace:
PHP   9. SimplePie_Item->get_permalink() /path/News/Bootstrap.php:89
PHP  10. SimplePie_Item->get_link() /path/git/simplepie/library/SimplePie/Item.php:929
PHP  11. SimplePie_Item->get_links() /path/git/simplepie/library/SimplePie/Item.php:955
PHP  12. SimplePie_Item->get_base() /path/git/simplepie/library/SimplePie/Item.php:1007
PHP  13. SimplePie->get_base() /path/git/simplepie/library/SimplePie/Item.php:167
PHP  14. SimplePie->get_link() /path/git/simplepie/library/SimplePie.php:1922
PHP  15. SimplePie->get_links() /path/git/simplepie/library/SimplePie.php:2270
PHP  16. SimplePie->sanitize() /path/git/simplepie/library/SimplePie.php:2344
PHP  17. SimplePie_Sanitize->sanitize() /path/git/simplepie/library/SimplePie.php:1944
PHP  18. SimplePie_Registry->call() /path/git/simplepie/library/SimplePie/Sanitize.php:359
PHP  19. call_user_func_array() /path/git/simplepie/library/SimplePie/Registry.php:206
PHP  20. SimplePie_Misc::absolutize_url() /path/git/simplepie/library/SimplePie/Registry.php:0

Perhaps change Misc.php since SimplePie_IRI::absolutize can return false.

public static function absolutize_url($relative, $base)
{
    $iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative);
    // return $iri->get_uri();
    if($iri) return $iri->get_uri();
}

However, making that change results in:

PHP Notice: This XML document is invalid, likely due to invalid characters. XML error: > required at line 1110, column 141 in /home/david/www/git/simplepie/library/SimplePie.php on line 1374
@rmccue

This comment has been minimized.

Show comment
Hide comment
@rmccue

rmccue Jul 19, 2012

Contributor

Thanks for reporting this issue! In future @hakimihamdan88, it's not necessary to CC me as I get notified of all issues automatically. I would have responded sooner, but it has been a busy week. :)

I'll take a look into this. @gsnedders, want to check this when you check #219? This also seems like somewhere we need unit tests too.

For those reporting this issue: can you var_dump() the parameters being passed in to SimplePie_Misc::absolutize_url() please?

Contributor

rmccue commented Jul 19, 2012

Thanks for reporting this issue! In future @hakimihamdan88, it's not necessary to CC me as I get notified of all issues automatically. I would have responded sooner, but it has been a busy week. :)

I'll take a look into this. @gsnedders, want to check this when you check #219? This also seems like somewhere we need unit tests too.

For those reporting this issue: can you var_dump() the parameters being passed in to SimplePie_Misc::absolutize_url() please?

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 20, 2012

public static function absolutize_url($relative, $base)
{
$iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative);
return $iri->get_uri();
}

That is where the error happens. When I try to var dump $relative and $base using this feed: http://bfgb.wordpress.com/feed/,
This are the results:
var_dump($relative)
Result:
string(31) "http://bfgb.wordpress.com/feed/"
string(31) "http://bfgb.wordpress.com/feed/"
string(31) "http://bfgb.wordpress.com/feed/"
string(33) "http://bfgb.wordpress.com/osd.xml"
string(31) "http://bfgb.wordpress.com/feed/"
string(40) "http://bfgb.wordpress.com/?pushpress=hub"
string(31) "http://bfgb.wordpress.com/feed/"
string(25) "http://bfgb.wordpress.com"Blogging for a Good Book
Fatal error: Call to a member function get_uri() on a non-object in D:\xampp\htdocs\simplepie\library\SimplePie\Misc.php on line 84

var_dump($base)
Result:
string(0) ""
string(31) "http://bfgb.wordpress.com/feed/"
string(0) ""
string(31) "http://bfgb.wordpress.com/feed/"
string(0) ""
string(31) "http://bfgb.wordpress.com/feed/"
string(0) ""
string(31) "http://bfgb.wordpress.com/feed/"Blogging for a Good Book
string(26) "http://bfgb.wordpress.com/" string(0) ""
Fatal error: Call to a member function get_uri() on a non-object in D:\xampp\htdocs\simplepie\library\SimplePie\Misc.php on line 84

The error happens when this code is being run return $iri->get_uri();

Your help would be greatly appreciated since we are already using your library in our live site.

Thanks!

ghost commented Jul 20, 2012

public static function absolutize_url($relative, $base)
{
$iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative);
return $iri->get_uri();
}

That is where the error happens. When I try to var dump $relative and $base using this feed: http://bfgb.wordpress.com/feed/,
This are the results:
var_dump($relative)
Result:
string(31) "http://bfgb.wordpress.com/feed/"
string(31) "http://bfgb.wordpress.com/feed/"
string(31) "http://bfgb.wordpress.com/feed/"
string(33) "http://bfgb.wordpress.com/osd.xml"
string(31) "http://bfgb.wordpress.com/feed/"
string(40) "http://bfgb.wordpress.com/?pushpress=hub"
string(31) "http://bfgb.wordpress.com/feed/"
string(25) "http://bfgb.wordpress.com"Blogging for a Good Book
Fatal error: Call to a member function get_uri() on a non-object in D:\xampp\htdocs\simplepie\library\SimplePie\Misc.php on line 84

var_dump($base)
Result:
string(0) ""
string(31) "http://bfgb.wordpress.com/feed/"
string(0) ""
string(31) "http://bfgb.wordpress.com/feed/"
string(0) ""
string(31) "http://bfgb.wordpress.com/feed/"
string(0) ""
string(31) "http://bfgb.wordpress.com/feed/"Blogging for a Good Book
string(26) "http://bfgb.wordpress.com/" string(0) ""
Fatal error: Call to a member function get_uri() on a non-object in D:\xampp\htdocs\simplepie\library\SimplePie\Misc.php on line 84

The error happens when this code is being run return $iri->get_uri();

Your help would be greatly appreciated since we are already using your library in our live site.

Thanks!

@woody0130

This comment has been minimized.

Show comment
Hide comment
@woody0130

woody0130 Jul 20, 2012

Is there any workaround ?

I am getting this error on $item->get_content() as well:

get_items() as $item): ?> get_permalink(); ?> get_title(); ?>

Posted on get_date('j F Y | g:i a'); ?>

get_content(); ?>

woody0130 commented Jul 20, 2012

Is there any workaround ?

I am getting this error on $item->get_content() as well:

get_items() as $item): ?> get_permalink(); ?> get_title(); ?>

Posted on get_date('j F Y | g:i a'); ?>

get_content(); ?>
@mazard

This comment has been minimized.

Show comment
Hide comment
@mazard

mazard Jul 22, 2012

Same problem here.

base:http://www.mnac.cat/?lan=002
relative:http://www.flickr.com//photos/73401757@N05/sets/72157630431743284/show/

It looks like there is a problem in the url validation, I think in my case the problem is the '@'.

As a fast workaround I replaced the is_valid function to return always true.

public function is_valid()
{
        return true;
    }

It seems to work fine, I don't know if it can cause any other problems but its not breaking my production site at least.

Regards!
mazard

mazard commented Jul 22, 2012

Same problem here.

base:http://www.mnac.cat/?lan=002
relative:http://www.flickr.com//photos/73401757@N05/sets/72157630431743284/show/

It looks like there is a problem in the url validation, I think in my case the problem is the '@'.

As a fast workaround I replaced the is_valid function to return always true.

public function is_valid()
{
        return true;
    }

It seems to work fine, I don't know if it can cause any other problems but its not breaking my production site at least.

Regards!
mazard

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 23, 2012

@mazard Is that the function in the IRI.php?
This is the function

public function is_valid()
{
$isauthority = $this->iuserinfo !== null || $this->ihost !== null || $this->port !== null;
if ($this->ipath !== '' &&
(
$isauthority && (
$this->ipath[0] !== '/' ||
substr($this->ipath, 0, 2) === '//'
) ||
(
$this->scheme === null &&
!$isauthority &&
strpos($this->ipath, ':') !== false &&
(strpos($this->ipath, '/') === false ? true : strpos($this->ipath, ':') < strpos($this->ipath, '/'))
)
)
)
{
return false;
}

return true;

}

I remove everything but retained return true, but the error still exists :(

ghost commented Jul 23, 2012

@mazard Is that the function in the IRI.php?
This is the function

public function is_valid()
{
$isauthority = $this->iuserinfo !== null || $this->ihost !== null || $this->port !== null;
if ($this->ipath !== '' &&
(
$isauthority && (
$this->ipath[0] !== '/' ||
substr($this->ipath, 0, 2) === '//'
) ||
(
$this->scheme === null &&
!$isauthority &&
strpos($this->ipath, ':') !== false &&
(strpos($this->ipath, '/') === false ? true : strpos($this->ipath, ':') < strpos($this->ipath, '/'))
)
)
)
{
return false;
}

return true;

}

I remove everything but retained return true, but the error still exists :(

@nightowl77

This comment has been minimized.

Show comment
Hide comment
@nightowl77

nightowl77 Jul 23, 2012

Hi

Also having the same problem and wanted to provide some debug text. SimplePie died on this specific entry from engadget

<item>
<title>
<![CDATA[
Huawei's MediaPad 10 teases all of its traits in soothing promo video
]]>
</title>
<link>
http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/
</link>
<guid isPermaLink="true">
http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/
</guid>
<comments>
http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/#comments
</comments>
<description>
<![CDATA[
<p style="text-align: center;"> <a href="http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/"><img alt="Huawei's MediaPad 10 teases all its traits in soothing promo video" data-src-height="354" data-src-width="567" src="http://www.blogcdn.com/www.engadget.com/media/2012/07/mediapad7-21.png" style="margin: 4px;" /></a></p><p> Huawei's 10-inch FHD tablet has been anything but shy since its little-known <a href="http://www.engadget.com/2012/02/21/huawei-alleged-10-inch-android-tablet-leaks/">early days</a>, well before <a href="http://www.engadget.com/2012/02/26/huawei-mediapad-10-eyes-on/">its unexpected introduction</a> to the masses. But since we've now seen it (<a href="http://www.engadget.com/2012/05/08/huawei-10-inch-mediapad-hands-on/">and felt it</a>) in most of its glory, we shouldn't be surprised that <a href="http://www.engadget.com/tag/Huawei/">its creator's</a> taken the time to put together a quick promotional vid ahead of an expected launch next month. The MediaPad 10 teaser, naturally, touts many of the slate's own features, including the sensational 1920 x 1200 IPS display, Huawei's <a href="http://www.engadget.com/2012/02/26/huawei-adds-home-grown-k3v2-quad-core-mobile-cpu-to-its-arsenal/">in-house K3 Balong CPU</a>, as well as its "refined metallic surface" and "luxurious yet subtle" design. Of course, there's <em>a lot</em> more where that came from, so head on past the break to watch the ballyhooed clip for yourself.</p><p><a href="http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/" rel="bookmark">Continue reading <em>Huawei's MediaPad 10 teases all of its traits in soothing promo video</em></a></p><p>Filed under: <a href="http://www.engadget.com/category/tabletpcs/" rel="tag">Tablet PCs</a></p><p style="padding:5px;background:#ddd;border:1px solid #ccc;clear:both;"><a href="http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/">Huawei's MediaPad 10 teases all of its traits in soothing promo video</a> originally appeared on <a href="http://www.engadget.com">Engadget</a> on Sun, 22 Jul 2012 01:13:00 EDT. Please see our <a href="http://www.weblogsinc.com/feed-terms/">terms for use of feeds</a>.</p><h6 style="clear: both; padding: 8px 0 0 0; height: 2px; font-size: 1px; border: 0; margin: 0; padding: 0;"></h6><a href="http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/" rel="bookmark" title="Permanent link to this entry">Permalink</a>&nbsp;<img class="img_label" src="http://www.blogsmithmedia.com/www.engadget.com/media/post_label_VIA.gif" alt=""/><span class="caption"><a href="http://http://www.ubergizmo.com/2012/07/huawei-mediapad-10-1-gets-a-new-teaser/" target="_blank">Ubergizmo</a><!--//--></span> &nbsp;|&nbsp; <img class="img_label" src="http://www.blogsmithmedia.com/www.engadget.com/media/post_label_source.gif" alt="source"/><span class="caption"><a href="http://www.youtube.com/watch?v=yM9TlNjJ-ss&amp;feature=player_embedded#%21" target="_blank">Huawei (YouTube)</a><!--//--></span> &nbsp;|&nbsp;<a href="http://www.engadget.com/forward/20283290/" title="Send this entry to a friend via email">Email this</a>&nbsp;|&nbsp;<a href="http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/#comments" title="View reader comments on this entry">Comments</a>
]]>
</description>
<category>Android</category>
<category>Huawei</category>
<category>Huawei MediaPad</category>
<category>Huawei MediaPad 10</category>
<category>Huawei MediaPad 10 FHD</category>
<category>HuaweiMediapad</category>
<category>HuaweiMediapad10</category>
<category>HuaweiMediapad10Fhd</category>
<category>Ice Cream Sandwich</category>
<category>IceCreamSandwich</category>
<category>MediaPad</category>
<category>MediaPad 10</category>
<category>MediaPad 10FHD</category>
<category>Mediapad10</category>
<category>Mediapad10fhd</category>
<category>minipost</category>
<category>video</category>
<dc:creator>
<![CDATA[ Edgar Alvarez ]]>
</dc:creator>
<pubDate>Sun, 22 Jul 2012 01:13:00 EDT</pubDate>
</item>

I think it chokes on that %21 at the end of the "embed youtube" link

Hope this helps!

nightowl77 commented Jul 23, 2012

Hi

Also having the same problem and wanted to provide some debug text. SimplePie died on this specific entry from engadget

<item>
<title>
<![CDATA[
Huawei's MediaPad 10 teases all of its traits in soothing promo video
]]>
</title>
<link>
http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/
</link>
<guid isPermaLink="true">
http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/
</guid>
<comments>
http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/#comments
</comments>
<description>
<![CDATA[
<p style="text-align: center;"> <a href="http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/"><img alt="Huawei's MediaPad 10 teases all its traits in soothing promo video" data-src-height="354" data-src-width="567" src="http://www.blogcdn.com/www.engadget.com/media/2012/07/mediapad7-21.png" style="margin: 4px;" /></a></p><p> Huawei's 10-inch FHD tablet has been anything but shy since its little-known <a href="http://www.engadget.com/2012/02/21/huawei-alleged-10-inch-android-tablet-leaks/">early days</a>, well before <a href="http://www.engadget.com/2012/02/26/huawei-mediapad-10-eyes-on/">its unexpected introduction</a> to the masses. But since we've now seen it (<a href="http://www.engadget.com/2012/05/08/huawei-10-inch-mediapad-hands-on/">and felt it</a>) in most of its glory, we shouldn't be surprised that <a href="http://www.engadget.com/tag/Huawei/">its creator's</a> taken the time to put together a quick promotional vid ahead of an expected launch next month. The MediaPad 10 teaser, naturally, touts many of the slate's own features, including the sensational 1920 x 1200 IPS display, Huawei's <a href="http://www.engadget.com/2012/02/26/huawei-adds-home-grown-k3v2-quad-core-mobile-cpu-to-its-arsenal/">in-house K3 Balong CPU</a>, as well as its "refined metallic surface" and "luxurious yet subtle" design. Of course, there's <em>a lot</em> more where that came from, so head on past the break to watch the ballyhooed clip for yourself.</p><p><a href="http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/" rel="bookmark">Continue reading <em>Huawei's MediaPad 10 teases all of its traits in soothing promo video</em></a></p><p>Filed under: <a href="http://www.engadget.com/category/tabletpcs/" rel="tag">Tablet PCs</a></p><p style="padding:5px;background:#ddd;border:1px solid #ccc;clear:both;"><a href="http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/">Huawei's MediaPad 10 teases all of its traits in soothing promo video</a> originally appeared on <a href="http://www.engadget.com">Engadget</a> on Sun, 22 Jul 2012 01:13:00 EDT. Please see our <a href="http://www.weblogsinc.com/feed-terms/">terms for use of feeds</a>.</p><h6 style="clear: both; padding: 8px 0 0 0; height: 2px; font-size: 1px; border: 0; margin: 0; padding: 0;"></h6><a href="http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/" rel="bookmark" title="Permanent link to this entry">Permalink</a>&nbsp;<img class="img_label" src="http://www.blogsmithmedia.com/www.engadget.com/media/post_label_VIA.gif" alt=""/><span class="caption"><a href="http://http://www.ubergizmo.com/2012/07/huawei-mediapad-10-1-gets-a-new-teaser/" target="_blank">Ubergizmo</a><!--//--></span> &nbsp;|&nbsp; <img class="img_label" src="http://www.blogsmithmedia.com/www.engadget.com/media/post_label_source.gif" alt="source"/><span class="caption"><a href="http://www.youtube.com/watch?v=yM9TlNjJ-ss&amp;feature=player_embedded#%21" target="_blank">Huawei (YouTube)</a><!--//--></span> &nbsp;|&nbsp;<a href="http://www.engadget.com/forward/20283290/" title="Send this entry to a friend via email">Email this</a>&nbsp;|&nbsp;<a href="http://www.engadget.com/2012/07/22/huawei-mediapad-10-fhd-tablet-teaser/#comments" title="View reader comments on this entry">Comments</a>
]]>
</description>
<category>Android</category>
<category>Huawei</category>
<category>Huawei MediaPad</category>
<category>Huawei MediaPad 10</category>
<category>Huawei MediaPad 10 FHD</category>
<category>HuaweiMediapad</category>
<category>HuaweiMediapad10</category>
<category>HuaweiMediapad10Fhd</category>
<category>Ice Cream Sandwich</category>
<category>IceCreamSandwich</category>
<category>MediaPad</category>
<category>MediaPad 10</category>
<category>MediaPad 10FHD</category>
<category>Mediapad10</category>
<category>Mediapad10fhd</category>
<category>minipost</category>
<category>video</category>
<dc:creator>
<![CDATA[ Edgar Alvarez ]]>
</dc:creator>
<pubDate>Sun, 22 Jul 2012 01:13:00 EDT</pubDate>
</item>

I think it chokes on that %21 at the end of the "embed youtube" link

Hope this helps!

@woody0130

This comment has been minimized.

Show comment
Hide comment
@woody0130

woody0130 Jul 26, 2012

is there an ETA on a fix for this? My customer is getting very anxious...

woody0130 commented Jul 26, 2012

is there an ETA on a fix for this? My customer is getting very anxious...

@booruguru

This comment has been minimized.

Show comment
Hide comment
@booruguru

booruguru Jul 27, 2012

I'm having the same problem with the feed --- http://rss.cbc.ca/lineup/topstories.xml

Note: The error is preventing my page from fully rendering. Any suggestions on how I force the page to load fully despite this (or any future) errors?

booruguru commented Jul 27, 2012

I'm having the same problem with the feed --- http://rss.cbc.ca/lineup/topstories.xml

Note: The error is preventing my page from fully rendering. Any suggestions on how I force the page to load fully despite this (or any future) errors?

@cookiejest

This comment has been minimized.

Show comment
Hide comment
@cookiejest

cookiejest Jul 29, 2012

Hi,

I think this problem is being caused if the URL contains numbers for some reason.

My code works with other feeds that have no numbers but not with http://rss.cnn.com/rss/edition_business360.rss

With this feed I get the error quoted above.

cookiejest commented Jul 29, 2012

Hi,

I think this problem is being caused if the URL contains numbers for some reason.

My code works with other feeds that have no numbers but not with http://rss.cnn.com/rss/edition_business360.rss

With this feed I get the error quoted above.

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 29, 2012

@cookiejest But I'm getting the error when using this URL: http://bfgb.wordpress.com/feed/ that doesn't have a number.

ghost commented Jul 29, 2012

@cookiejest But I'm getting the error when using this URL: http://bfgb.wordpress.com/feed/ that doesn't have a number.

@cookiejest

This comment has been minimized.

Show comment
Hide comment
@cookiejest

cookiejest Jul 29, 2012

@jimgym1989 yours has a space in one of the URLs I think

cookiejest commented Jul 29, 2012

@jimgym1989 yours has a space in one of the URLs I think

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 29, 2012

@cookiejest What URL? I'm not seeing that one that has a space. Hmmm...

ghost commented Jul 29, 2012

@cookiejest What URL? I'm not seeing that one that has a space. Hmmm...

@cookiejest

This comment has been minimized.

Show comment
Hide comment
@cookiejest

cookiejest Jul 29, 2012

@jimgym1989 string(31) "http://bfgb.wordpress.com/feed/"Blogging for a Good Book

But I don't really know

cookiejest commented Jul 29, 2012

@jimgym1989 string(31) "http://bfgb.wordpress.com/feed/"Blogging for a Good Book

But I don't really know

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 29, 2012

@cookiejest Did you try that in your end? Did it also get the same error?

ghost commented Jul 29, 2012

@cookiejest Did you try that in your end? Did it also get the same error?

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 29, 2012

@cookiejest The weird thing is that when we try to add those URLs on their simplepie demo (http://simplepie.org/demo/), it's not giving us error, is this a server issue? like our server messes everything. But the error doesn't look like a server error or issue.

I wonder when those simplepie developers will fixed this problem.

ghost commented Jul 29, 2012

@cookiejest The weird thing is that when we try to add those URLs on their simplepie demo (http://simplepie.org/demo/), it's not giving us error, is this a server issue? like our server messes everything. But the error doesn't look like a server error or issue.

I wonder when those simplepie developers will fixed this problem.

@cookiejest

This comment has been minimized.

Show comment
Hide comment
@cookiejest

cookiejest Jul 29, 2012

@jimgym1989 http://bfgb.wordpress.com/feed/ doesnt work on my set up either as it gives me the error. This is a problem with SimplePie code.

cookiejest commented Jul 29, 2012

@jimgym1989 http://bfgb.wordpress.com/feed/ doesnt work on my set up either as it gives me the error. This is a problem with SimplePie code.

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 29, 2012

@cookiejest Try putting that URL in http://simplepie.org/demo/, it's not giving that error.

ghost commented Jul 29, 2012

@cookiejest Try putting that URL in http://simplepie.org/demo/, it's not giving that error.

@cookiejest

This comment has been minimized.

Show comment
Hide comment
@cookiejest

cookiejest Jul 29, 2012

@jimgym1989 I see that it works using that, will have to wait for them to try and fix it as I don't understand SimplePie well enough to suggest a way to solve it without causing other problems

cookiejest commented Jul 29, 2012

@jimgym1989 I see that it works using that, will have to wait for them to try and fix it as I don't understand SimplePie well enough to suggest a way to solve it without causing other problems

@cosenal

This comment has been minimized.

Show comment
Hide comment
@cosenal

cosenal Jul 30, 2012

I don't if it can help to debug. This feed create the issue in my case: http://lucatrevisan.wordpress.com/feed/
I am using SP 1.3

cosenal commented Jul 30, 2012

I don't if it can help to debug. This feed create the issue in my case: http://lucatrevisan.wordpress.com/feed/
I am using SP 1.3

@hakimihamdan88

This comment has been minimized.

Show comment
Hide comment
@hakimihamdan88

hakimihamdan88 Aug 2, 2012

its seems @rmccue is busy guys

hakimihamdan88 commented Aug 2, 2012

its seems @rmccue is busy guys

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Aug 2, 2012

We're doomed! :(

ghost commented Aug 2, 2012

We're doomed! :(

@Hunin

This comment has been minimized.

Show comment
Hide comment
@Hunin

Hunin Aug 3, 2012

I added a ? to the function call replace_invalid_with_pct_encoding. I was passing a query string to break cache on the website where I pull the RSS feed. I think it would also work if you added a % which is the invalid character.

line 1062 @ IRI.php

    else
    {
        $valid = $this->replace_invalid_with_pct_encoding($ipath, '!$&\'()*+,;=@:/');
        $removed = $this->remove_dot_segments($valid);

        $cache[$ipath] = array($valid, $removed);
        $this->ipath =  ($this->scheme !== null) ? $removed : $valid;
    }

This is just a workaround and not any sort of fix. There seems to be something not being handled by replace_invalid_with_pct_encoding and thus it isn't normalizing the URL completely.

Hunin commented Aug 3, 2012

I added a ? to the function call replace_invalid_with_pct_encoding. I was passing a query string to break cache on the website where I pull the RSS feed. I think it would also work if you added a % which is the invalid character.

line 1062 @ IRI.php

    else
    {
        $valid = $this->replace_invalid_with_pct_encoding($ipath, '!$&\'()*+,;=@:/');
        $removed = $this->remove_dot_segments($valid);

        $cache[$ipath] = array($valid, $removed);
        $this->ipath =  ($this->scheme !== null) ? $removed : $valid;
    }

This is just a workaround and not any sort of fix. There seems to be something not being handled by replace_invalid_with_pct_encoding and thus it isn't normalizing the URL completely.

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Aug 4, 2012

I get this problem too when using SimplePie_FIle with a path that has dots in it. e.g. DIR . '/../fixtures/test-data.xml';

This is caused by line 1065 @ IRI.php

$removed = $this->remove_dot_segments($valid);

ghost commented Aug 4, 2012

I get this problem too when using SimplePie_FIle with a path that has dots in it. e.g. DIR . '/../fixtures/test-data.xml';

This is caused by line 1065 @ IRI.php

$removed = $this->remove_dot_segments($valid);
@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Aug 6, 2012

@Hunin : I wonder what's wrong with this URL: http://bfgb.wordpress.com/feed/ It's giving me those error. It seemed like there's no malicious characters on that URL.

Have you tried entering your URL on their demo site? Looks like their demo site won't show any errors and works perfectly

ghost commented Aug 6, 2012

@Hunin : I wonder what's wrong with this URL: http://bfgb.wordpress.com/feed/ It's giving me those error. It seemed like there's no malicious characters on that URL.

Have you tried entering your URL on their demo site? Looks like their demo site won't show any errors and works perfectly

@Hunin

This comment has been minimized.

Show comment
Hide comment
@Hunin

Hunin Aug 6, 2012

@jimgym1989 It looks like SimplePie processes every URL in the feed using set_path function. In your feed, you have some URLs with a ? character like <atom:link rel='hub' href='http://bfgb.wordpress.com/?pushpress=hub'/> on line 29 and <media:content url="http://bfgb.files.wordpress.com/2012/07/europe.jpeg?w=200" medium="image"> on line 63. So I believe adding a ? character to the extra characters of the function replace_invalid_with_pct_encoding will bypass these characters.

Hunin commented Aug 6, 2012

@jimgym1989 It looks like SimplePie processes every URL in the feed using set_path function. In your feed, you have some URLs with a ? character like <atom:link rel='hub' href='http://bfgb.wordpress.com/?pushpress=hub'/> on line 29 and <media:content url="http://bfgb.files.wordpress.com/2012/07/europe.jpeg?w=200" medium="image"> on line 63. So I believe adding a ? character to the extra characters of the function replace_invalid_with_pct_encoding will bypass these characters.

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Aug 7, 2012

@Hunin I added a ? on that call

$valid = $this->replace_invalid_with_pct_encoding($ipath, '!$&\'()*+,;=@:/?');

but still it gives me error

ghost commented Aug 7, 2012

@Hunin I added a ? on that call

$valid = $this->replace_invalid_with_pct_encoding($ipath, '!$&\'()*+,;=@:/?');

but still it gives me error

@iSenne

This comment has been minimized.

Show comment
Hide comment
@iSenne

iSenne Aug 9, 2012

I have the same problem. Temporarily solved it by returning true in the is_valid() function! But will watch for a solution!

iSenne commented Aug 9, 2012

I have the same problem. Temporarily solved it by returning true in the is_valid() function! But will watch for a solution!

@cosenal

This comment has been minimized.

Show comment
Hide comment
@cosenal

cosenal Aug 10, 2012

@iSenne: temporarily solved in what sense? I did the same, but I still get the Fatal Error :(

cosenal commented Aug 10, 2012

@iSenne: temporarily solved in what sense? I did the same, but I still get the Fatal Error :(

@cmmartin

This comment has been minimized.

Show comment
Hide comment
@cmmartin

cmmartin Aug 12, 2012

This is a strange issue. I have been parsing the same feeds for weeks without any problems and now I am getting this error on many of my feeds. Is anyone working on this? Seems like the Simplepie guys may have abandoned it

cmmartin commented Aug 12, 2012

This is a strange issue. I have been parsing the same feeds for weeks without any problems and now I am getting this error on many of my feeds. Is anyone working on this? Seems like the Simplepie guys may have abandoned it

@rmccue

This comment has been minimized.

Show comment
Hide comment
@rmccue

rmccue Aug 13, 2012

Contributor

@cmmartin I'm definitely watching this issue, but I've not yet had time to track it down. If anyone can take one of these broken feeds and break it down to just the part causing the error, that would help immensely.

Contributor

rmccue commented Aug 13, 2012

@cmmartin I'm definitely watching this issue, but I've not yet had time to track it down. If anyone can take one of these broken feeds and break it down to just the part causing the error, that would help immensely.

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Aug 13, 2012

@rmccue That's the problem, I personally don't know the reason why this feed http://bfgb.wordpress.com/feed/ broke up, @Hunin told me that that's because I have some URLs with a ? character like on line 29 and on line 63.

Kindly work on this one please, we are already moving our site in live so that's why we needed to find a solution for this one. I know you're kinda busy on your job, but please, kindly make time for this one. Have mercy!

Thanks @rmccue! Your help would be greatly appreciated! :)

ghost commented Aug 13, 2012

@rmccue That's the problem, I personally don't know the reason why this feed http://bfgb.wordpress.com/feed/ broke up, @Hunin told me that that's because I have some URLs with a ? character like on line 29 and on line 63.

Kindly work on this one please, we are already moving our site in live so that's why we needed to find a solution for this one. I know you're kinda busy on your job, but please, kindly make time for this one. Have mercy!

Thanks @rmccue! Your help would be greatly appreciated! :)

@iSenne

This comment has been minimized.

Show comment
Hide comment
@iSenne

iSenne Aug 13, 2012

@zimba12 The is_valid() function can either return false or true. I changed the false in to true and that solved my problem, like @mazard did!

iSenne commented Aug 13, 2012

@zimba12 The is_valid() function can either return false or true. I changed the false in to true and that solved my problem, like @mazard did!

@demoncheese

This comment has been minimized.

Show comment
Hide comment
@demoncheese

demoncheese Aug 17, 2012

To stop the error from appearing I just added a check to see if the object was created and pass the result of the method if it is and false if not so the absolutize_url method in Misc.php became:

public static function absolutize_url($relative, $base)
{
    $iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative);
    if ( is_object( $iri ) )
        return $iri->get_uri();
    else {
        return FALSE;
    }
}

This seems to be working for me now

demoncheese commented Aug 17, 2012

To stop the error from appearing I just added a check to see if the object was created and pass the result of the method if it is and false if not so the absolutize_url method in Misc.php became:

public static function absolutize_url($relative, $base)
{
    $iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative);
    if ( is_object( $iri ) )
        return $iri->get_uri();
    else {
        return FALSE;
    }
}

This seems to be working for me now

@cosenal

This comment has been minimized.

Show comment
Hide comment
@cosenal

cosenal Aug 17, 2012

@iSenne: are you talking about the function is_valid() in IRI.php? Nothing changes here if I change the false into true.

cosenal commented Aug 17, 2012

@iSenne: are you talking about the function is_valid() in IRI.php? Nothing changes here if I change the false into true.

@cosenal

This comment has been minimized.

Show comment
Hide comment
@cosenal

cosenal Aug 19, 2012

Some var_dump that can help debugging.

For many feeds, the error arises when the values passed to absolutize_url are:
string(0) ""
string(0) ""

There are other cases too. For example, for the feed http://projectprime.org/projectprime/feed.php the var_dump on $relative and $base before the absolutize_url gives, respectively:

string(46) "http://projectprime.org//data/comic/en/301.png"
string(39) "http://projectprime.org/project%20prime"

Maybe in this case the double slash is what creates issues?

cosenal commented Aug 19, 2012

Some var_dump that can help debugging.

For many feeds, the error arises when the values passed to absolutize_url are:
string(0) ""
string(0) ""

There are other cases too. For example, for the feed http://projectprime.org/projectprime/feed.php the var_dump on $relative and $base before the absolutize_url gives, respectively:

string(46) "http://projectprime.org//data/comic/en/301.png"
string(39) "http://projectprime.org/project%20prime"

Maybe in this case the double slash is what creates issues?

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Aug 21, 2012

@demoncheese : wow that one worked for me, but I got a feeling that that's just a temporary fix, I hope @rmccue or the simplePie guys would do some unit testing.

Thanks!

ghost commented Aug 21, 2012

@demoncheese : wow that one worked for me, but I got a feeling that that's just a temporary fix, I hope @rmccue or the simplePie guys would do some unit testing.

Thanks!

@casta

This comment has been minimized.

Show comment
Hide comment
@casta

casta Aug 23, 2012

Please, see the pull request I just issued. This is the fix I use: #228

casta commented Aug 23, 2012

Please, see the pull request I just issued. This is the fix I use: #228

@hakimihamdan88

This comment has been minimized.

Show comment
Hide comment
@hakimihamdan88

hakimihamdan88 commented Oct 18, 2012

any updates?

@rmccue

This comment has been minimized.

Show comment
Hide comment
@rmccue

rmccue Oct 30, 2012

Contributor

Looks like I have a test case: when the path component begins with "//"

Contributor

rmccue commented Oct 30, 2012

Looks like I have a test case: when the path component begins with "//"

rmccue added a commit that referenced this issue Oct 30, 2012

Fix issue #214 by ensuring we handle invalid URIs
Also closes #228, but doesn't fix the base problem where paths starting
with // aren't parsed by SimplePie_IRI.

rmccue added a commit that referenced this issue Oct 30, 2012

Fix issue #214 by ensuring we handle invalid URIs
Also closes #228, but doesn't fix the base problem where paths starting
with // aren't parsed by SimplePie_IRI.

@rmccue rmccue closed this Oct 30, 2012

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment