Subversion Repositories Applications.papyrus

Rev

Rev 2094 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2094 Rev 2148
Line 79... Line 79...
79
//require_once(MAGPIE_DIR.'rss_fetch.inc');
79
//require_once(MAGPIE_DIR.'rss_fetch.inc');
80
require_once PAP_CHEMIN_API_PEAR.'XML/Feed/Parser.php';
80
require_once PAP_CHEMIN_API_PEAR.'XML/Feed/Parser.php';
81
// +------------------------------------------------------------------------------------------------------+
81
// +------------------------------------------------------------------------------------------------------+
82
// |                                            CORPS du PROGRAMME                                        |
82
// |                                            CORPS du PROGRAMME                                        |
83
// +------------------------------------------------------------------------------------------------------+
83
// +------------------------------------------------------------------------------------------------------+
-
 
84
 
-
 
85
// l'applette est un peu teubée et ne comprend pas certains flux
-
 
86
// pourtant valides, par sécurité, on supprime donc certains caractères
-
 
87
function supprimerXmlDangereux($xml)
-
 
88
{
-
 
89
    $ret = "";
-
 
90
    $encours;
-
 
91
    if (empty($xml)) 
-
 
92
    {
-
 
93
        return $ret;
-
 
94
    }
-
 
95
 
-
 
96
    $lg = strlen($xml);
-
 
97
    for ($i=0; $i < $lg; $i++)
-
 
98
    {
-
 
99
        $encours = ord($xml{$i});
-
 
100
        if (($encours == 0x9) ||
-
 
101
            ($encours == 0xA) ||
-
 
102
            ($encours == 0xD) ||
-
 
103
            (($encours >= 0x20) && ($encours <= 0xD7FF)) ||
-
 
104
            (($encours >= 0xE000) && ($encours <= 0xFFFD)) ||
-
 
105
            (($encours >= 0x10000) && ($encours <= 0x10FFFF)))
-
 
106
        {
-
 
107
            $ret .= chr($encours);
-
 
108
        }
-
 
109
        else
-
 
110
        {
-
 
111
            $ret .= " ";
-
 
112
        }
-
 
113
    }
-
 
114
    return $ret;
-
 
115
}
-
 
116
 
84
/** Fonction afficherSyndication() - Retourne la liste des pages des sites syndiqués.
117
/** Fonction afficherSyndication() - Retourne la liste des pages des sites syndiqués.
85
*
118
*
86
* Cette fonction retourne la liste des pages des sites syndiqués.
119
* Cette fonction retourne la liste des pages des sites syndiqués.
87
*
120
*
88
* @param  array contient les arguments de la fonction.
121
* @param  array contient les arguments de la fonction.
Line 167... Line 200...
167
				$aso_site = array();
200
				$aso_site = array();
168
				// Liste des encodages acceptés pour les flux
201
				// Liste des encodages acceptés pour les flux
169
				$encodages = 'UTF-8, ISO-8859-1, ISO-8859-15';
202
				$encodages = 'UTF-8, ISO-8859-1, ISO-8859-15';
170
				try {
203
				try {
171
					$xml = file_get_contents($url);
204
					$xml = file_get_contents($url);
-
 
205
					$xml = supprimerXmlDangereux($xml);
172
					$feed = new XML_Feed_Parser($xml);
206
					$feed = new XML_Feed_Parser($xml);
173
				} catch (XML_Feed_Parser_Exception $e) {
207
				} catch (XML_Feed_Parser_Exception $e) {
174
					creer_cache('erreur', $xml, 86400);
208
					creer_cache('erreur', $xml, 86400);
175
					return('Le flux RSS est invalide : ' . $e->getMessage());
209
					return('Le flux RSS est invalide : ' . $e->getMessage());
176
				}
210
				}