changed file_get_contents for cURL
removing everything before <?xml using stristr()
updated readme & history for readability
Cette révision appartient à :
Albirew 2015-01-08 18:08:10 +01:00
Parent 4ce8174d5f
révision b6370bc9e8
2 fichiers modifiés avec 64 ajouts et 32 suppressions

Voir le fichier

@ -18,15 +18,18 @@ ToDo:
Historique des révisions: Historique des révisions:
- rev.15 remplacement de file_get_contents par cURL
- rev.14 remplacement des commandes pour virer tout ce qui avait avant <?xml par stristr
- rev.13 viré un OK avant certains flux o_O
- rev.12 commenté la rev.10 en attendant de mieux (même les caractères déjà encodés étaient réencodés) - rev.12 commenté la rev.10 en attendant de mieux (même les caractères déjà encodés étaient réencodés)
- rev.11 ajout effacement de plusieures lignes avant <?xml - rev.11 ajout effacement de plusieures lignes avant <?xml
- rev.10 changement & grace a preg_replace - rev.10 changement & grace a preg_replace
- rev.09 ajout caractère & - rev.09 ajout caractère &
- rev.08 ajout style et tracker piwik - rev.08 ajout style
- rev.07 nettoyage du code, html5 valide - rev.07 nettoyage du code, html5 valide
- rev.06 mise en forme page + ajout exemple dans le champ rss du formulaire - rev.06 mise en forme page + ajout exemple dans le champ rss du formulaire
- rev.05 ajout formulaire - rev.05 ajout formulaire
- rev.04 ajout page si pas de RSS en entrée - rev.04 ajout page si pas de RSS en entrée
- rev.03 ajout caractère SUB - rev.03 ajout suppression du caractère SUB
- rev.02 ajout caractères BS et SI - rev.02 ajout suppression des caractères BS et SI
- rev.01 fichier initial - rev.01 fichier initial (supprime les caractères ETX)

Voir le fichier

@ -13,40 +13,69 @@ ToDo:
Liste des révisions: Liste des révisions:
rev.15 remplacement de file_get_contents par cURL
rev.14 remplacement des commandes pour virer tout ce qui avait avant <?xml par stristr
rev.13 viré un OK avant certains flux o_O rev.13 viré un OK avant certains flux o_O
rev.12 commenté la rev.10 en attendant de mieux (même les caractères déjà encodés étaient réencodés) rev.12 commenté la rev.10 en attendant de mieux (même les caractères déjà encodés étaient réencodés)
rev.11 ajout effacement de plusieures lignes avant <?xml rev.11 ajout effacement de plusieures lignes avant <?xml
rev.10 changement & grace a preg_replace rev.10 changement & grace a preg_replace
rev.09 ajout caractère & rev.09 ajout caractère &
rev.08 ajout style et tracker piwik rev.08 ajout style
rev.07 nettoyage du code, html5 valide rev.07 nettoyage du code, html5 valide
rev.06 mise en forme page + ajout exemple dans le champ rss du formulaire rev.06 mise en forme page + ajout exemple dans le champ rss du formulaire
rev.05 ajout formulaire rev.05 ajout formulaire
rev.04 ajout page si pas de RSS en entrée rev.04 ajout page si pas de RSS en entrée
rev.03 ajout caractère SUB rev.03 ajout suppression du caractère SUB
rev.02 ajout caractères BS et SI rev.02 ajout suppression des caractères BS et SI
rev.01 fichier initial rev.01 fichier initial (supprime les caractères ETX)
*/ */
if(isset($_GET['rss'])) function better_file_get_content($url)
{ {
$url = $_GET['rss']; $user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';
if(!preg_match('/http[s]?:\/\//', $url, $matches)) $url = 'http://'.$url; $options = array(
$boulets = file_get_contents($url); CURLOPT_CUSTOMREQUEST =>"GET",
header("Pragma: no-cache"); CURLOPT_POST =>false,
header("Content-type: application/rss+xml"); CURLOPT_USERAGENT => $user_agent,
$corrige = str_replace(" <?xml" , "<?xml", $boulets); CURLOPT_RETURNTRANSFER => true,
$corrige = str_replace("\n<?xml" , "<?xml", $corrige); CURLOPT_HEADER => false,
$corrige = str_replace("\n<?xml" , "<?xml", $corrige); CURLOPT_FOLLOWLOCATION => true,
$corrige = str_replace("\n<?xml" , "<?xml", $corrige); CURLOPT_ENCODING => "",
$corrige = str_replace("\n<?xml" , "<?xml", $corrige); CURLOPT_AUTOREFERER => true,
$corrige = str_replace("\n<?xml" , "<?xml", $corrige); CURLOPT_CONNECTTIMEOUT => 120,
$corrige = str_replace("OK<?xml" , "<?xml", $corrige); CURLOPT_TIMEOUT => 120,
# $corrige = preg_replace('/&(?!amp;|quot;|nbsp;|gt;|lt;|laquo;|raquo;|copy;|reg;|bul;|rsquo;)/', '&amp;', $corrige); CURLOPT_MAXREDIRS => 10,
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
function clean_rss($url)
{
$source = better_file_get_content($url)[content];
$corrige = stristr($source, '<?xml');
$corrige = str_replace("" , "", $corrige); $corrige = str_replace("" , "", $corrige);
$corrige = str_replace("" , "", $corrige); $corrige = str_replace("" , "", $corrige);
$corrige = str_replace("" , "", $corrige); $corrige = str_replace("" , "", $corrige);
$correction = str_replace("" , "", $corrige); $corrige = str_replace("" , "", $corrige);
echo $correction; return $corrige;
}
if(isset($_GET['rss']))
{
$rss = $_GET['rss'];
if(!preg_match('/http[s]?:\/\//', $rss, $matches)) $rss = 'http://'.$rss;
header("Pragma: no-cache");
header("Content-type: application/rss+xml");
echo clean_rss($rss);
} }
else else
{ {
@ -62,7 +91,7 @@ else
<div style="margin:0 0 1px 0; background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAPCAYAAAAlH6X5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEBJREFUeNpieJdb9J+JAQggxO///xmYvv//x8D08d8/BoY/f/58YfgPBGBZ5hs3bmwGsZ6DiPcg4gdIFqIXIMAAfOwcqLCrkOQAAAAASUVORK5CYII=\'); height: 15px;"></div> <div style="margin:0 0 1px 0; background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAPCAYAAAAlH6X5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEBJREFUeNpieJdb9J+JAQggxO///xmYvv//x8D08d8/BoY/f/58YfgPBGBZ5hs3bmwGsZ6DiPcg4gdIFqIXIMAAfOwcqLCrkOQAAAAASUVORK5CYII=\'); height: 15px;"></div>
<div style="width: 910px; margin: 0 auto;"> <div style="width: 910px; margin: 0 auto;">
<h1 style="font-size:220%; letter-spacing: 1px; text-align: center; margin: 0; text-decoration:underline; font-weight:bold;">Correcteur de RSS pour sites web en carton</h1> <h1 style="font-size:220%; letter-spacing: 1px; text-align: center; margin: 0; text-decoration:underline; font-weight:bold;">Correcteur de RSS pour sites web en carton</h1>
<h2 style="font-size:20px; text-align: right; margin: 0 0 10px 0;">rev.13<br>Enlève certains caractères invisibles qui malforment les flux RSS (peux servir aussi de proxy RSS)<br><br>Mode d`emploi: Mettez l`URL complète du flux RSS que vous voulez, puis cliquez sur GO!.<br></h2> <h2 style="font-size:20px; text-align: right; margin: 0 0 10px 0;">rev.15<br>Enlève certains caractères invisibles qui malforment les flux RSS (peux servir aussi de proxy RSS)<br><br>Mode d`emploi: Mettez l`URL complète du flux RSS que vous voulez, puis cliquez sur GO!.<br></h2>
<div style="text-align: center; margin: 0;"><form method="get" action="coto_rss.php"> <div style="text-align: center; margin: 0;"><form method="get" action="coto_rss.php">
<input type="text" value="ex: blablabla.fr/rss.php?id=news" size="50" name="rss" onFocus="this.value=\'\'" /> <input type="text" value="ex: blablabla.fr/rss.php?id=news" size="50" name="rss" onFocus="this.value=\'\'" />
<button type="submit" value="1">GO!</button> <button type="submit" value="1">GO!</button>