Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/07/2008, 04h22   #1
Invité de passage
 
Inscription : juillet 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 21
Points : 3
Points : 3
Par défaut Double problème : RSS et fichiers doc

Bonjour tout le monde, j'ai deux problèmes dans mon appli php :

premièrement mon flux RSS :

Code :
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
55
56
57
58
59
60
 
        public function rssAction()
	{
		$this->news = new News();
        $nouvelles = $this->news->getNewsByLimit ( 10, 0 ); // flux des 10 dernieres entrees
 
		//print_r($nouvelles);
 
		$tempnouvelle = $nouvelles->current ();
		$pubDate = strtotime($tempnouvelle->date);
		$urlDeBase = 'http://127.0.0.1' . $this->_request->getBaseUrl ();
 
		$feedArray = array ('title' => 'Marenla',
				'link' => $urlDeBase . '/index/rss',
				'description' => 'dernières informations',
				'language' => 'fr-fr',
				'charset' => 'utf-8',
				'lastUpdate' => $pubDate,
				'generator' => 'Zend Framework Zend_Feed',
				'entries' => array ( ) );
 
		foreach ( $nouvelles as $nouvelle )
		{
			$contenu = $nouvelle->contenu;
			if(strlen($contenu)<=200)
			{
				$cmax = strlen($contenu);
			}
			else
			{
				$cmax = 200;
				while($contenu[$cmax] !== " ")
				{
					$cmax++;
				}
			}
			$subcontenu = substr($contenu, 1, $cmax);
 
			$feedArray ['entries'] [] = array (
									'title' => $nouvelle->titre,
									'link' => $urlDeBase . '/index/voir/id/' . $nouvelle->id,
									'guid' => $urlDeBase . '/index/voir/id/' . $nouvelle->id,
									'description' => $subcontenu.'...',
									'content' => $contenu,
									'lastUpdate' => strtotime($nouvelle->date));
		}
 
		print_r($feedArray);
 
		$feed = Zend_Feed::importArray ( $feedArray, 'rss' );
 
		foreach ($feed as $entry) {
            $element = $entry->summary->getDOM();
		}
 
		// pas de layout.html
		Zend_Layout::getMvcInstance ()->disableLayout (true);
		$this->_helper->viewRenderer->setNoRender();
		$feed->send();
    }
Ce code ne provoque pas d'erreur en lui-même à l'exécution mais lorsque je clique sur le lien menant à cette action dans firefox, il me propose de télécharger un fichier de type application/rss+xml au lieu de me proposer de m'abonner à ce flux comme il devrait le faire, et le fait sur tout autre flux rss. Je ne comprends pas d'où ça vient


Deuxième problème : téléchargement de fichiers doc,

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
	public function downloadAction()
	{
		//chdir('../bulletins/');
		Zend_Layout::getMvcInstance()->disableLayout();
		$fileToDown = (string)$this->_request->getParam('file', null);
		$this->_helper->viewRenderer->setNoRender();
		//$localfile = '....test.doc';
		//$contents = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/application/bulletins/' . $fileToDown);
 
		header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
		header('Content-Description: File Transfer');
		header('Content-Transfer-Encoding: binary');
		header('Content-Type: application/octet-stream');
                //header('Content-Type: application/msword');
		header('Content-Length: '.filesize($_SERVER['DOCUMENT_ROOT'] . '/application/bulletins/' . $fileToDown));
		header('Content-Disposition: attachment; filename='.$fileToDown);
		//ob_clean();
        //flush();
 
		readfile($_SERVER['DOCUMENT_ROOT'] . '/application/bulletins/' . $fileToDown);
		}
A la suite du téléchargement, à l'ouverture Word demande de convertir le fichier (pas normal :p) et le contenu du fichier devient ensuite illisible et est totalement différent (rempli de petits carrés, etc...). Pour info les fichiers .doc testés ont été créés avec le même Word 2003. Je ne comprends pas

Si vous pouviez m'aider ça serait sympa
gorhh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2008, 16h02   #2
Invité de passage
 
Inscription : juillet 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 21
Points : 3
Points : 3
J'ai modifié mon download de fichier .doc de telle manière :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
	public function downloadAction()
	{
		//chdir('../bulletins/');
		Zend_Layout::getMvcInstance()->disableLayout();
		$fileToDown = (string)$this->_request->getParam('file', null);
		$this->_helper->viewRenderer->setNoRender();
 
                $contents = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/application/bulletins/' . $fileToDown);
		$this->getResponse()->setHeader("Cache-Control","no-cache, must-revalidate");
		$this->getResponse()->setHeader("Content-Description", "File Transfer");
		$this->getResponse()->setHeader("Pragma", "public");
		$this->getResponse()->setHeader("Expires", "0");
		$this->getResponse()->setHeader("Content-Type", "application/msword");
		$this->getResponse()->setHeader("Content-Length", filesize($_SERVER['DOCUMENT_ROOT'] . '/application/bulletins/' . $fileToDown));
		$this->getResponse()->setHeader("Content-Disposition", 'attachment; filename='.$fileToDown);
		$this->getResponse()->setBody($contents); 
 
                echo $contents; 
        }
Mais ça ne marche toujours pas, le flux rss non plus. I need help
gorhh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h36.


 
 
 
 
Partenaires

Hébergement Web