Vous essayez d'ouvrir un socket vers un fichier sur l'hôte distant, ce qui n'est pas correct. vous pouvez établir une connexion socket (TCP/UDP) vers un numéro de port sur un hôte distant. votre code devrait donc être le suivant :
fsockopen('www.mysite.com', 80);
si vous essayez de créer une ressource de type pointeur de fichier vers un fichier distant, vous pouvez utiliser la fonction fopen(). mais pour ce faire, vous devez également spécifier le protocole de l'application.
PHP fournit des wrappers de flux par défaut pour les ouvertures de fichiers URL. En fonction du schéma de l'URL, le wrapper de flux approprié sera appelé en interne. L'URL que vous essayez d'ouvrir n'a pas de schéma valide pour cette solution. Assurez-vous qu'elle contient un schéma comme "http://" ou "ftp://".
donc le code serait comme ceci :
$fp = fopen('http://www.mysite.com/path/file.txt');
De plus, je ne pense pas que le wrapper HTTP stream (qui gère les actions sur les ressources de fichiers sur les URL avec le schéma http) supporte l'écriture de données. Vous pouvez utiliser fread() pour lire le contenu d'une URL via HTTP, mais je ne suis pas sûr pour l'écriture.
EDIT : à partir des commentaires et d'autres réponses, j'ai compris que vous deviez envoyer une requête HTTP à l'URL spécifiée. Les méthodes décrites dans cette réponse sont destinées à recevoir des données de l'URL distante. Si vous voulez envoyer des données, vous pouvez utiliser http_request() pour le faire.
0 votes
L'adresse distante est-elle accessible ? Le DNS est-il résolu ?
1 votes
Oui. En fait, je l'ai actuellement en train d'accéder à une url sur le même serveur.
2 votes
J'ai rencontré la même erreur mais je pense que cela provenait d'une mauvaise configuration du serveur dans "etc/resolf.conf" et "etc/hosts".
0 votes
La réponse est de corriger votre
/etc/hosts
. Assurez-vous que l'url pointe vers l'endroit où elle doit être (généralement localhost).0 votes
J'ai obtenu ce résultat pour un 'nouveau mysqli' dont le nom d'hôte de la base de données ne figurait pas dans le fichier /etc/hosts/.
1 votes
Mon erreur était très bête .... L'orthographe de localhost était fausse :)