simplexml_load_file d'erreur en PHP 5.3
J'utilise le code suivant pour lire un flux RSS et de sortie des résultats.
function home_page_parser($feedURL) {
$rss = simplexml_load_file($feedURL);
$i = 0;
echo "<ul>";
foreach ($rss->channel->item as $feedItem) {
$i++;
$myDate = ($feedItem->pubDate);
$dateForm = explode(" ", $myDate);
echo "<li class=\"rss-feed\"><a href=\"$feedItem->link\" title=\"$feedItem->title\" target=\"_blank\">".$feedItem->title."</a><br />" .$feedItem->pubDate. "</li>";
if($i >= 3) break;
echo "</ul>";
}
}
Il fonctionne très bien sur mon site de test à Rackspace Cloud exécution de PHP 5.2
Sur le site en direct à Media Temple de l'exécution de PHP 5.3, j'obtiens les erreurs suivantes:
Avertissement: simplexml_load_file() [function.simplexml-load-file]: http://wrapper est désactivé dans la configuration du serveur par allow_url_fopen=0 dans /.../html/includes/functions.php sur la ligne 39
Avertissement: simplexml_load_file(
http://www.chinaknowledge.com/Newswires/RSS_News/RSS_News.xml
) [function.simplexml-load-file]: failed to open stream: no adapté wrapper peut être trouvé dans /.../html/includes/functions.php sur la ligne 39Avertissement: simplexml_load_file() [function.simplexml-load-file]: - je/O avertissement : échec de chargement de l'entité externe
"http://www.chinaknowledge.com/Newswires/RSS_News/RSS_News.xml"
/.../html/includes/functions.php sur la ligne 39Warning: Invalid argument supplied for foreach() in /.../html/includes/functions.php sur la ligne 44
À la ligne 39 est-ce:
$rss = simplexml_load_file($feedURL);
Ce que je fais mal ou besoin de changer de travail sur 5.3?
OriginalL'auteur Brett | 2012-07-04
Vous devez vous connecter pour publier un commentaire.
L'erreur est assez descriptif vous ne pensez pas?
Vous devrez modifier le fichier de configuration de PHP et de modifier la configuration
allow_url_fopen
.Si vous ne pouvez pas le faire directement essayer la fonction ini_set()Edit: @evanmcd souligné dans les commentaires, cette configuration ne peut être définie qu'en php.ini. La documentation PHP de référence.
oui. essayez d'ajouter que vers le haut. mais la fonction
ini_set
est également désactivée dans beaucoup de communes des environnements d'hébergement.Essayé de mettre dans les fonctions de fichier et pas de chance. Il a été désactivée dans le php.fichier ini et allumé et pas de chance... je vais aller discuter avec les Médias Temple et voir ce que je peux trouver.
Ils ont fait pour moi et il ne fonctionne toujours pas....
allow_url_fopen ne peut pas être réglée via la fonction ini_set(). Voir stackoverflow.com/questions/1804010/...
OriginalL'auteur shxfee
Cette erreur vient, en raison des "http://wrapper est désactivé dans la configuration du serveur par allow_url_fopen=0" .Pour éviter ce problème nous avons besoin de modifier ce paramètre Sur on au lieu de off.À mon avis, la plupart des serveurs d'hébergement partagé ne vous permettent pas de faire de ces paramètres soit au moyen de la fonction ini_set('allow_url_fopen', 'on'); ou htaccess primordial.Ainsi, au lieu d'essayer ces méthodes, je suggère un moyen de récupérer cette avance est comme suit.Utilisation de CURL nous avons besoin de récupérer le contenu de flux xml dans une variable.Ensuite, le processus de notre simplexml les opérations de fichiers .
Exemple
$xml = simplexml_load_string($output)
OriginalL'auteur
Si vous n'êtes pas autorisé à modifier php.ini dans le serveur, vous pouvez utiliser curl pour obtenir xml et de lire les données xml stirng comme ci-dessous.
OriginalL'auteur Huzoor Bux
Ceci permettra de définir permettre à ouvrir url = on dans php.fichier ini, mais vous avez besoin de redémarrer php dans easyphp ou wamp, xamp ou ou en hébergement.
OriginalL'auteur Faizan Rupani