2010-09-19 7 views
1
<?php 
$twitter_url = 'http://twitter.com/statuses/user_timeline/ishrikrishna.xml?count=1'; 

$buffer = file_get_contents($twitter_url); 

$xml = new SimpleXMLElement($buffer); 

$status = $xml -> status; 

$tweet = $status -> text; 

echo $tweet; 

?> 

J'ai utilisé ce code pour récupérer les tweets et il fonctionne avec succès sur localhost mais pas sur mon hébergeur, j'ai essayé ce script sur deux services d'hébergement Web.Y at-il de toute façon de faire fonctionner simpleXML sur l'hôte Web

Le problème que j'ai remarqué est que des fonctions comme file_get_contents(), simplexml_load_file() n'ont pas réussi à extraire des données du fichier xml (ex: fichiers rss) stockés sur un autre serveur.

+0

Cela ressemble à une sorte de problème de configuration sur les serveurs d'hébergement. Il peut y avoir une sorte de restriction sur l'accès aux méthodes qui sont liées au fonctionnement du fichier. –

+0

Quelle est l'erreur exacte que vous obtenez? – codaddict

+0

Page Web vierge sur le webhost, mais localhost récupère le tweet avec succès. –

Répondre

0

Je crois que cela signifie que les wrappers d'URL fopen sont désactivés. Voir http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen Vous ne pourrez probablement pas les activer si vous utilisez un serveur Web partagé.

Vous pourrez peut-être utiliser cURL pour récupérer des pages à distance au lieu:

$ch = curl_init('http://twitter.com/statuses/user_timeline/ishrikrishna.xml?count=1'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$buffer = curl_exec($ch); 

Cela ne fonctionnera que vous avez l'extension cURL installé et activé sur votre hébergeur.

Voir la documentation cURL PHP: http://www.php.net/manual/en/book.curl.php

Edit: appel curl_setopt corrigé

+0

Curl ne fonctionne pas non plus, existe-t-il de toute façon pour installer et utiliser notre propre version de php sur les pages web ou existe-t-il une méthode pour activer des extensions comme simplexml via le fichier .htaccess. –

+0

Non, vous ne pouvez activer que les wrappers fopen dans php.ini, et je m'attends à ce qu'un hébergeur qui les a désactivés ne vous permette pas de les activer. Il est parfaitement possible que vous n'ayez pas la possibilité de charger des fichiers distants à partir de votre hébergeur. Je vous conseille de contacter votre hébergeur et de vérifier si elles ont bien désactivé allow_url_fopen. – lonesomeday

+0

D'accord, je vais les contacter, merci pour l'aide. –

0

SimpleXML est nouveau en PHP 5. Je pense que presque tous les webhosts ont PHP 5 installé, mais dans le cas où votre hôte est toujours en utilisant PHP 4, cela peut être la raison pour laquelle votre script ne fonctionne pas.