source: plugins_spip/outils_microformats/action/hcard2vcard.php @ 822

Last change on this file since 822 was 822, checked in by kent1, 12 years ago

on lui donne le bon SOURCE

File size: 1.6 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5function action_hcard2vcard() {
6        $url = _request('arg');
7       
8        include_spip('inc/getdocument');
9        $d = creer_repertoire_documents('vcf');
10        if (_DIR_RACINE)
11                $d = preg_replace(',^'.preg_quote(_DIR_RACINE).',', '', $d);
12       
13        $nom_fichier = md5($url).'.vcf';
14        $fichier = $d.$nom_fichier;
15       
16        $date = '';
17        if(file_exists($fichier)){
18                $date = filemtime($fichier);
19                spip_log("date = ".$date);
20        }
21        include_spip('inc/distant');
22        $page = recuperer_page($url,false,false,'1048576','','',false,$date);
23        if($page !== false){
24                // Nouvelle instance
25                $xslt = new XSLTProcessor();
26               
27                $feuille = find_in_path('x2v/hcard/xhtml2vcard.xsl');
28               
29                // Chargement du fichier XSL
30                $xsl = new domDocument();
31                $xsl->substituteEntities = TRUE;
32                $xsl -> load($feuille);
33               
34                // Import de la feuille XSL
35                $xslt -> importStylesheet($xsl);
36               
37                // Chargement du fichier XML
38                $xml = new domDocument();
39                $xml->substituteEntities = TRUE;
40                $xml -> loadHTML($page);
41               
42                // Transformation et enregistrement du résultat dans le fichier save.xml
43                // Le fichier XML est également chargé via simplexml
44                $xslt ->setParameter('','Source',$url);
45                $xslt -> transformToUri($xml, $fichier);
46        }
47       
48        $cl = filesize($fichier);
49
50        $ETag = md5($fichier . ': '. filemtime($fichier));
51        if (isset($_SERVER['HTTP_IF_NONE_MATCH'])
52                AND $_SERVER['HTTP_IF_NONE_MATCH'] == $ETag) {
53                        http_status(304); // Not modified
54                        exit;
55                } else {
56                        header('ETag: '.$ETag);
57        }
58
59       
60        header("Content-Type: text/x-vcard");
61        header("Content-Length: ". $cl);
62        header("Content-Disposition: attachment; filename=\"$nom_fichier\";");
63        readfile($fichier);
64        die();
65}
66
67?>
Note: See TracBrowser for help on using the repository browser.