So just to clarify. I changed the code back to its original state (with the original calls to strstr()) and simply moved one parenthesis in order to solve the problem on my implementation.
Simple fix after hours of tracking this sucker down!
I just had the same symptoms with a WP 2.0 site. What happened was that my hosting company apparently upgraded PHP and caused a latent bug in WP to suddenly start causing problems.
I documented it here – maybe it will help:
http://wordpress.org/support/topic/411604
Actually, on second look – it seems there is a problem with the WordPress code – and the old strstr() was forgiving enough to let it pass – but the new version errors out.
Old WP code:
} elseif (strstr($curl, ‘<code’) || strstr($curl, ‘<pre’) || strstr($curl, ‘<kbd’ || strstr($curl, ‘<style’) || strstr($curl, ‘<script’))) {
New fixed code (moving a paren):
} elseif (strstr($curl, ‘<code’) || strstr($curl, ‘<pre’) || strstr($curl, ‘<kbd’) || strstr($curl, ‘<style’) || strstr($curl, ‘<script’)) {