2009-06-26 11 views
3

Je cherche des conseils sur la meilleure façon de récupérer des informations à partir d'une page web (mon propre site), puis de rechercher dans ces informations pour trouver une certaine texte. En gardant à l'esprit que certains serveurs qui exécutent PHP/Joomla n'ont pas activé cURL, je ne veux pas provoquer d'erreurs inattendues. J'ai regardé à la fois fopen() et file_get_contents() et les deux semblent avoir des vues conflictuelles les unes des autres en termes de fonctionnement avec/sans cURL.Meilleure pratique pour utiliser fopen() ou file_get_contents() pour récupérer des pages Web

Répondre

4

Ils fonctionneront tous les deux sans boucle, mais vous devez activer allow_url_fopen. Vous pouvez vérifier cela en exécutant phpinfo(). Il y a des implications de sécurité cependant, voir ceci:

Should I allow 'allow_url_fopen' in PHP?

donc de saisir pages, vous pouvez utiliser fopen(), file_get_contents() ou d'un autre client HTTP indépendant mis en œuvre en PHP, comme HttpClient qui peuvent fonctionner sans ceux-ci.

1
I read now and then on forums and chats that allow_url_fopen has to be enabled for Joomla to work properly. That's an "urban legend", leftover from old versions, but almost no one seems to actually test and confirm that fact. It seems the Docs are also wrong about it. 

Joomla! CMS & Framework don't depend on "allow_url_fopen" being enabled. Period! 

Quite the contrary, J! Framework has a very good and robust core subpackage HTTP, which supports "drivers" based on cURL, streams and sockets. Which means even with fopen() URL wrappers ("streams" driver) disabled altogether ("allow_url_fopen = 0"), any extensions implementing HTTP subpackage still has "cURL" and "sockets" driver available. For example, Joomla Update component will, in case "allow_url_fopen" is disabled, fall back on using cURL wrapper (given cURL PHP extension is enabled). 
+0

Indice: si vous êtes intéressé par les upvotes; envisager d'écrire bien, un texte lisible par l'homme? Vous savez, comme l'utilisation de paragraphes, et peut-être * balisage * pour souligner les choses; au lieu de laisser tomber un tel gâchis illisible. – GhostCat

+0

Merci @GhostCat –

+0

C'est mieux maintenant; mais quel est le point d'utiliser des indentations de bloc de code à 4 espaces? – GhostCat

Questions connexes