Bonjour,
Est-il possible de détecter si un flux RSS distant a été mis à jour ?
Bonjour,
Est-il possible de détecter si un flux RSS distant a été mis à jour ?
Salut,
Voilà un exemple complet qui pourra certainement t'aider, à modifier si tu le souhaite.
Cordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 <?php function stream_last_modified($url) { if (function_exists('version_compare') && version_compare(phpversion(), '4.3.0') > 0) { if (!($fp = @fopen($url, 'r'))) return NULL; $meta = stream_get_meta_data($fp); for ($j = 0; isset($meta['wrapper_data'][$j]); $j++) { if (strstr(strtolower($meta['wrapper_data'][$j]), 'last-modified')) { $modtime = substr($meta['wrapper_data'][$j], 15); break; } } fclose($fp); } else { $parts = parse_url($url); $host = $parts['host']; $path = $parts['path']; if (!($fp = @fsockopen($host, 80))) return NULL; $req = "HEAD $path HTTP/1.0\r\nUser-Agent: PHP/".phpversion()."\r\nHost: $host:80\r\nAccept: */*\r\n\r\n"; fputs($fp, $req); while (!feof($fp)) { $str = fgets($fp, 4096); if (strstr(strtolower($str), 'last-modified')) { $modtime = substr($str, 15); break; } } fclose($fp); } return isset($modtime) ? strtotime($modtime) : time(); } $last_modified = stream_last_modified('http://www.animeka.com/rss/actuasite.html'); if (!is_null($last_modified)) if ($last_modified < time()-3600) //Older than an hour echo 'URL is older than an hour.'; else echo 'URL is fairly new.'; else echo 'Invalid URL!'; ?>
Merci, je vais tester çà.
Par contre, ça semble plutôt retourner la date de dernier accès que la date de modification.
Oui, bah comme dans l'exemple que je t'es donné, ta plus qu'a faire un test avec la date du jours.
tu n'as qu'a fixer un temps pour dire qu'un flux doit être considéré comme mise à jours.
Car faire ça en temps réel ça me semble un peu plus difficile.
Après peut-être que je ne répond pas totalement à ta question...
Cordialement.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager