- else if (preg_match(',<link[^>]*>,Uims', $item, $regs))
- $data['url'] = extraire_attribut($regs[0], 'href');
-
- // Aucun link ni guid, mais une enclosure
- else if (preg_match(',<enclosure[^>]*>,ims', $item, $regs)
- AND $url = extraire_attribut($regs[0], 'url'))
- $data['url'] = $url;
-
- // pas d'url, c'est genre un compteur...
- else
- $data['url'] = '';
+ } // contourner les redirections feedburner
+ else {
+ if (_SYNDICATION_DEREFERENCER_URL
+ and preg_match(',<feedburner:origLink>(.*)<,Uims',
+ $item, $regs)
+ ) {
+ $data['url'] = $regs[1];
+ } // <link>, plus classique
+ else {
+ if (preg_match(
+ ',<link[^>]*[[:space:]]rel=["\']?alternate[^>]*>(.*)</link>,Uims',
+ $item, $regs)) {
+ $data['url'] = $regs[1];
+ } else {
+ if (preg_match(',<link[^>]*[[:space:]]rel=.alternate[^>]*>,Uims',
+ $item, $regs)) {
+ $data['url'] = extraire_attribut($regs[0], 'href');
+ } else {
+ if (preg_match(',<link[^>]*>\s*([^\s]+)\s*</link>,Uims', $item, $regs)) {
+ $data['url'] = $regs[1];
+ } else {
+ if (preg_match(',<link[^>]*>,Uims', $item, $regs)) {
+ $data['url'] = extraire_attribut($regs[0], 'href');
+ } // Aucun link ni guid, mais une enclosure
+ else {
+ if (preg_match(',<enclosure[^>]*>,ims', $item, $regs)
+ and $url = extraire_attribut($regs[0], 'url')
+ ) {
+ $data['url'] = $url;
+ } // pas d'url, c'est genre un compteur...
+ else {
+ $data['url'] = '';
+ }
+ }
+ }
+ }
+ }
+ }
+ }