récupérer le code source [PHP] - PHP - Programmation
Marsh Posté le 19-09-2006 à 20:55:53
hugoOo a écrit : Salut tout le monde, |
Cherche sur le manuel php qui est très bien fait. Dans ton cas tu vas sûrement te tourner vers DOM.
Marsh Posté le 19-09-2006 à 21:04:50
Salut, moi j'avai pensé a quelque chose de ce type :
Code :
|
est-ce que c'est bon à votre avis?
Marsh Posté le 19-09-2006 à 21:09:32
hugoOo a écrit : Salut, moi j'avai pensé a quelque chose de ce type :
|
Quand tu veux lire un fichier en entier utilises file_get_contents().
Marsh Posté le 19-09-2006 à 21:17:31
merci pour les conseils, alors comment est ce que je peut faire pour lire un fichier sur un serveur distant?
Marsh Posté le 19-09-2006 à 21:34:57
hugoOo a écrit : merci pour les conseils, alors comment est ce que je peut faire pour lire un fichier sur un serveur distant? |
Essaye ca :
$doc = new DomDocument; |
Marsh Posté le 19-09-2006 à 21:51:10
ReplyMarsh Posté le 20-09-2006 à 09:49:06
CNeo a écrit : Quand tu veux lire un fichier en entier utilises file_get_contents(). |
Biieeeeeennn .....
CNeo a écrit : Essaye ca :
|
Pas bieeeeeennnn ...
Nan mais la 2eme méthode c'est un peu abusé sans blaguer. Utiliser le DOM pour lire un fichier au secours
Marsh Posté le 20-09-2006 à 13:33:15
anapajari a écrit : Nan mais la 2eme méthode c'est un peu abusé sans blaguer. Utiliser le DOM pour lire un fichier au secours |
Ca fait un fichier plus propre en sortie mais si t'es pas sûr que le page que tu veux lire soit correctement codé il faut faire file_get_contents().
Marsh Posté le 20-09-2006 à 13:43:04
hugoOo a écrit : est-ce que tu peut expliquer un peu ton code silteplait |
Ce code utilises DOM. Il charge un fichier HTML et le sauvegarde ensuite en respectant les normes XML.
Marsh Posté le 20-09-2006 à 14:02:20
Quelqu'un peut t'il me dire clairement comment je dois m'y prendre svp ?
Marsh Posté le 20-09-2006 à 14:10:25
hugoOo a écrit : Quelqu'un peut t'il me dire clairement comment je dois m'y prendre svp ? |
On te l'a dit.
$file=file_get_contents('http://www.exemple.com/page.htm'); |
Marsh Posté le 20-09-2006 à 14:29:42
oui mais j'obtient cette erreur :
Citation : |
Marsh Posté le 20-09-2006 à 15:20:20
hugoOo a écrit : oui mais j'obtient cette erreur :
|
Pourquoi tu veux faire fopen() ? Fais juste file_get_contents(). Et apprends à lire la doc. En plus elle est en français ...
Marsh Posté le 20-09-2006 à 15:33:12
n'empeche que j'ai toujours la même erreur... le serveur n'est pas configuré pour.
Marsh Posté le 20-09-2006 à 19:15:37
là je suis pour ifrance mais le script est déstiné à tourner sur un serveur de bonne qualité, j'ai demandé a l'administrateur de faire des tests!
Marsh Posté le 20-09-2006 à 20:05:36
j'ai fait un test avec fsockopen mais je ne sais pas trop comment utiliser la fonction, mon code est il juste? :
Code :
|
Marsh Posté le 20-09-2006 à 20:09:56
hugoOo a écrit : j'ai fait un test avec fsockopen mais je ne sais pas trop comment utiliser la fonction, mon code est il juste? :
|
On t'a dit de regarder la doc ...
Marsh Posté le 20-09-2006 à 21:46:17
je l'ai regardé la doc, et c'est en regardant la doc que j'ai écrit ce code..
Marsh Posté le 20-09-2006 à 22:45:12
hugoOo a écrit : là je suis pour ifrance mais le script est déstiné à tourner sur un serveur de bonne qualité, j'ai demandé a l'administrateur de faire des tests! |
Code :
|
Marsh Posté le 21-09-2006 à 19:10:26
ReplyMarsh Posté le 21-09-2006 à 19:29:06
hugoOo a écrit : je l'ai regardé la doc, et c'est en regardant la doc que j'ai écrit ce code.. |
file_get_contents() ouvre le fichier, le lit et le referme et que donc il n'y a pas besoin fsockopen()
Marsh Posté le 21-09-2006 à 20:38:19
Oui, un appel à file_get_contents() avec comme paramètre l'url doit suffire.
Par contre, vu ce que tu as écrit précédemment, si l'accès à des fichiers distants est interdit chez ifrance (comme chez 1and1 avec php5), tu risques de devoir forcément utiliser la fonction fsockopen() (et les fonctions de lecture/fermeture des E/S).
Ce qui est un peu plus long.
Mais le mieux serait quand même que tu développes en PHP selon la version installée sur le serveur pro. Pourquoi ? Tu sembles débuter en PHP et mieux vaut commencer par faire simple (soit faire des scripts php adaptés à la machine sur laquelle ils doivent tourner).
Aussi, si cette fonctionnalité concernant les fichiers distants est activée, c'est en partie pour éviter que des programmeurs en herbe se fassent avoir avec la célèbre faille include...
Marsh Posté le 21-09-2006 à 21:03:25
en faite sur le seveur "pro", l'accès à des fichiers distants est interdit aussi donc il faut bien que je passe par fsockopen(), quelqu'un pourrait m'éclairer un peu plus sur le fonctionnemment de cette fonction.
ça fait bien longtemps que je me fais plus avoir avec les include quand même^^
EDIT : je vien de tester ce code :
Code :
|
Et la horreur :::
fsockopen interdit
Marsh Posté le 22-09-2006 à 08:13:02
au cas ou avant de developper pour un serveur que tu ne peux pas configurer toi meme ca vaut toujours le coup de faire un petit phpinfo
ca evite ca genre de mauvaises surprises
http://jdnetdev.ifrance.com/phpinfo.php
allow_url_fopen Off
donc c est mort
Marsh Posté le 22-09-2006 à 21:52:42
oui mais le serveur sur lequel devra tourné le script est un serveur dédié et l'administrateur peut donc modifier la configuration (enfin normalement)
Marsh Posté le 23-09-2006 à 01:59:14
hugoOo a écrit : oui mais le serveur sur lequel devra tourné le script est un serveur dédié et l'administrateur peut donc modifier la configuration (enfin normalement) |
S'il est dédié oui il pourra, à toi de te demander s'il vaut mieux pourvoir le faire ou faire autrement
Marsh Posté le 23-09-2006 à 10:26:28
hugoOo a écrit : en faite sur le seveur "pro", l'accès à des fichiers distants est interdit aussi donc il faut bien que je passe par fsockopen(), quelqu'un pourrait m'éclairer un peu plus sur le fonctionnemment de cette fonction.
|
Ouuuuhlala, ça marche pas comme ça la récupération de page avec fsockopen.
Il faut :
1. ouvrir le socket
2. envoyer la requête http
3. récupérer la réponse
Un exemple qui permet de récupérer la page /index.php:
$socket=@fsockopen('www.php.net',80,$errno, $errstr, 5);
if ($socket){
$out = "GET /index.php HTTP/1.1\r\n";
$out .= "Host: www.php.net \r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite ($socket, $out);
$data=""; while(!feof($socket)) $data.=fgets ($socket,1024);
fclose($socket);
}
Pour une page en ssl tu fais précéder l'adresse dans fsockopen par 'ssl://'
Et là attention, il te faudra encore virer les headers HTTP de la réponse.
En ce qui concerne l'autorisation d'utiliser fsockopen par ton hébergeur, je pense que tout dépend... de l'hébergeur.
Je suis chez 1and1 qui n'autorise fsockopen que vers les ports 80,8080,443 et >1024...
Marsh Posté le 19-09-2006 à 20:45:27
Salut tout le monde,
J'aimerai savoir quelle méthode peut on utiliser pour récupérer le code source d'une page web dans une variable php.
Merci deme dire si je suis pas clair
---------------
http://over-templates.c.la