file_get_contents() me donner 403 Forbidden
J'ai un partenaire qui a créé un peu de contenu pour me gratter.
Je peux accéder à la page de mon navigateur, mais lorsque j'essaie de l'utilisateur file_get_contents
, je reçois un 403 forbidden
.
J'ai essayé d'utiliser stream_context_create
, mais ce n'est pas aider - c'est peut-être parce que je ne sais pas ce qu'il devrait aller là-bas.
1) Est-il un moyen pour moi de me gratter les données?
2) Si non, et si le partenaire n'est pas autorisé à configurer le serveur pour me permettre d'accès, que puis-je faire alors?
Le code que j'ai essayé d'utiliser:
$opts = array(
'http'=>array(
'user_agent' => 'My company name',
'method'=>"GET",
'header'=> implode("\r\n", array(
'Content-type: text/plain;'
))
)
);
$context = stream_context_create($opts);
//Get header content
$_header = file_get_contents($partner_url,false, $context);
OriginalL'auteur Steven | 2012-07-27
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas un problème dans ton script, c'est une fonctionnalité en vous web des partenaires de la sécurité du serveur.
Il est difficile de dire exactement quel est le blocage de vous, plus grandes seront ses chances de une sorte de bloc contre le grattage. Si votre partenaire a accès à ses serveurs web de l'installation, il peut vous aider à cerner.
Ce que vous pourriez faire est de "faux un navigateur web", le réglage de l'utilisateur-agent en-têtes, de sorte qu'il imite un navigateur web standard.
Je recommanderais cURL pour ce faire, et il sera facile de trouver une bonne documentation pour ce faire.
merci je vais essayer ça. J'ai juste à trouver comment activer
CURL
sur mon serveur web - parce que je reçois un msg saysing quecurl_init()
est une fonction inconnue.Bonne chance, et je pense que cela pourrait vous aider à installer cURL stackoverflow.com/questions/1347146/how-to-enable-curl-in-php
OriginalL'auteur Cleric
//set User Agent première
J'ai eu une erreur 403 forbidden lors de l'appel de
file_get_contents()
, et l'ajout de cetteini_set
avant mon appel fixe mon problème.Merci. Je voulais utiliser curl première, qui est installé, activé et se affiche dans mon phpinfo mais ne permet pas de définir les fonctions, donc j'ai utilisé la normale de la fonction file_get_contents. En effet github api nécessite un agent de navigateur. Merci pour votre solution. +1
OriginalL'auteur Abid Hussain
J'ai deux choses dans mon esprit, Si vous êtes à l'ouverture d'un URI avec des caractères spéciaux, tels que les espaces, il faut coder les URI avec la fonction urlencode() et UNE URL peut être utilisé comme un nom de fichier avec cette fonction si le fopen wrappers ont été activés.
OriginalL'auteur ARIF MAHMUD RANA