Script pour ouvrir et enregistrer liste url html

Petit nouveau ! | 4 Messages

15 août 2008, 17:45

Bonjour à tous

Je suis nouveau sur ce forum et aussi en php :oops:

voila je cherche à creer un script ou un deja fait serai plus simple :wink:

j'ai une liste(1000 urls) formate comme cela "URL";"Description"

example : "http://www.monsite.com/test/galleries";"les galleries de la plage du gosier"

et donc je voudrai un script qui va ouvrir ou extraire le contenu de ces url et ensuite qui va les enregistrer

cela avec les premier mots de la description ce qui donnerai en gros ca

les-galleries-de-la-plage.html

cela ne dois pas etre bien complique malheureusement je suis une bille en php mais je veux bien apprendre :)

amicalement votre karlito ^^

ViPHP
ViPHP | 4674 Messages

15 août 2008, 19:25

Hey :),

Tout d'abord : bienvenu chez PHPFrance :D !
Ensuite, j'imagine que ton fichier est au format CSV ? PHP a des fonctions natives qui permettent de traiter le format CSV. Tu as par exemple fgetcsv(). Je te laisse regarder le manuel et les fonctions associées.

Pour manipuler des fichiers (créer, écrire, fermer, etc.), tu as les fonctions comme fopen(), fwrite(), fclose(), etc.

Pour manipuler les chaînes de caractères, tu auras besoin de substr() ou str_replace() par exemple.

Comme tu dis, ton script est tout bête mais il faut connaître un minimum PHP. Tu trouveras des liens sur Internet facilement (siteduzero.com, phpdebutant.org, …).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 1668 Messages

15 août 2008, 19:26

C'est pas du PHP qu'il te faut si tu veux ouvrir les pages, c'est du C/C++
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 4674 Messages

15 août 2008, 19:37

J'ai oublié de te dire que pour récupérer le contenu des pages, tu peux utiliser la fonction file_get_contents() qui est plus rapide que faire un fopen, fread, etc. Il y a beaucoup de fonctions, parcours bien la documentation.

@katagoto : Euh, tu es sérieux là ? C'est parfaitement faisable en PHP, alors fais attention à ce que tu dis s'il te plaît :). D'autant que son envie est de réaliser le script en PHP et qu'il est motivé pour apprendre, alors ne va pas l'envoyer sur un autre langage qui ferait la même chose …
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 1668 Messages

15 août 2008, 19:50

@HyWaN : d'après ce que je comprend tu problème, il veut ouvrire des URL, ou des pages distantes, dans ce cas, PHP n'est pas recommendé...
file_get_content() ne marchera que s'il à les autorisations, ce n'est pas très sécuriser de les donner à tout le monde.

Je donne la réponse qui me parait viable en fonction de ce que je comprend du problème...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 4674 Messages

15 août 2008, 19:58

Sauf que là, il voulait le faire en PHP. Comme file_get_contents à — par défaut — les autorisations et qu'il peut lire les protocoles http nativement, je le conseille vers cette fonction.
Ta réponse était décalée et n'avait pas à apparaître à ce stade de la discussion. Si tu n'es pas sûr, tente de faire en sorte que l'on comprenne que tu n'es pas sûr de ta réponse, ou pose le contexte. Mais comme ça, de but en blanc, ce n'est pas raisonnable de donner ce type de réponse.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

15 août 2008, 20:06

ouvrire des URL, ou des pages distantes, dans ce cas, PHP n'est pas recommendé...
file_get_content() ne marchera que s'il à les autorisations, ce n'est pas très sécuriser de les donner à tout le monde.
En quoi PHP n'est pas recommandé pour cela?!? :shock:
:arrow: Concernant la sécurité, je ne sais pas quelle expérience tu as en gestion de serveur ou en hébergement mutualisé, mais ce que tu dis est complètement faux.


Pour recentrer le sujet, ce que tu veux faire, karlito, est tout à fait faisable, voici un exemple pour enregistrer le code HTML d'une page:
<?php
// On définit quelques variables
$url="http://www.google.fr";
$nom_fichier="google.html";

// On récupère le code HTML d'une page distante
$code_html=file_get_contents($url);

// On enregistre le code récupéré dans un fichier
file_put_contents($nom_fichier,$code_html);
?>
:!: Important : Si tu veux enregistrer les pages mais en incluant les images, les CSS, les scripts (de façon à pouvoir les revoir hors-connexion par exemple) alors il va falloir également parser le code des pages pour récupérer tous ces fichiers supplémentaires et modifier le code source initiale pour pointer vers les fichiers en local.
:arrow: C'est très long et fastidieux à faire, surtout si tu débutes.
Modifié en dernier par @rthur le 16 août 2008, 09:23, modifié 1 fois.
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 1668 Messages

15 août 2008, 20:22

En quoi PHP n'est pas recommandé pour cela?!? :shock:
:arrow: Concernant la sécurité, je ne sais pas quelle expérience tu as en gestion de serveur ou en hébergement mutualisé, mais ce que tu dis est complètement faux.
Je pensais au CHMOD...

Et, en ce qui concerne PHP n'est pas recommandé pour ça, je parlais de la connexion à de nombreux serveurs distants...

Bref, pour éviter de polluer ce topic, et pour éviter toute pmolémique, j'ai eu tors, je le reconnais.
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Petit nouveau ! | 4 Messages

16 août 2008, 01:55

salut merci à tous pour vos messages

j'ai voulu essayer le code pour voir comment cela fonctionne

PHP:
<?php 
// On définit quelques variables 
$url="http://www.google.fr"; 
$nom_fichier="google.html" 

// On récupère le code HTML d'une page distante 
$code_html=file_get_contents($url); 

// On enregistre le code récupéré dans un fichier 
file_put_contents($nom_fichier,$code_html); 
?>

mais j'obtiens cette erreur

Parse error: syntax error, unexpected T_VARIABLE in /homepages/14/d145767036/htdocs/moon.php on line 7

la ligne 7 = $code_html=file_get_contents($url);

je suis en hébergement mutualisé 1&1


mon fichier ou sont mes urls est une exportation au format csv

ViPHP
ViPHP | 2144 Messages

16 août 2008, 02:57

Il te manque un point vigule à la fin de ta ligne précédente ;)

Mammouth du PHP | 1668 Messages

16 août 2008, 09:51

Il te manque un point vigule à la fin de ta ligne précédente ;)
Je savais pas qu'on devais finir ses commentaire par un ; :lol:
<?php  
// On définit quelques variables  
$url="http://www.google.fr";  
$nom_fichier="google.html" ;

// On récupère le code HTML d'une page distante  
$code_html=file_get_contents($url);  

// On enregistre le code récupéré dans un fichier  
file_put_contents($nom_fichier,$code_html);  
?> 
L'erreur était ligne 4, oui, un oublis de ;
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Petit nouveau ! | 4 Messages

17 août 2008, 01:54

la j'ai teste le code mais je n'obtiens rien si ce n'est une erreur peux etre du au php4

j'ai renome le fichier en php5 pour voir

et ca me donne cela

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /homepages/14/d145767036/htdocs/z/mo/moon.php5 on line 7

Warning: file_get_contents(http://www.google.fr) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /homepages/14/d145767036/htdocs/z/mo/moon.php5 on line 7

à priori cela est du à la config du serveur sur lequel je n'ai pas la main serveur mutualisé

Cette erreur est dû à une désactivation de la directive allow_url_fopen contenue dans le fichier de configuration php.ini. La désactivation de cette directive est généralement réalisée par mesure de sécurité.


j'ai essaye sur un serveur qui je pense est en php5 et la pas d'erreur mais rien ne se passe
je ne c'est pas d'ailleur ce qu'il doit se passer si un dossier ou un fichier doit se creer :oops:

enfin d'apres cette ligne :>>
// On enregistre le code récupéré dans un fichier   
file_put_contents($nom_fichier,$code_html); 
cela doit s'enregistrer ou ? dans un nouveau dossier ou directement fichier google.html

merci de vos reponse je vais encore chercher :P

ViPHP
AB
ViPHP | 5818 Messages

17 août 2008, 06:10


enfin d'apres cette ligne :>>
// On enregistre le code récupéré dans un fichier   
file_put_contents($nom_fichier,$code_html); 
cela doit s'enregistrer ou ? dans un nouveau dossier ou directement fichier google.html

merci de vos reponse je vais encore chercher :P
Comme tu peux le voir si tu cliques si tu cliques sur la fonction qui te conduira au manuel, file_put_contents sert à enregistrer des données dans un fichier qui sera créé s'il n'existe pas. En l'occurence tel quel cela te permettrait d'enregistrer le code html dans un fichier sur ton serveur qui se nommera google.html, puisque dans l'exemple $nom_fichier="google.html"

ViPHP
ViPHP | 4674 Messages

17 août 2008, 10:52

Comme tu peux le voir si tu cliques si tu cliques sur la fonction
si tu doubles-cliques :mrgreen: ?

Oui je sais où est la sortie …
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

17 août 2008, 11:50

URL file-access is disabled in the server configuration in [...]

à priori cela est du à la config du serveur sur lequel je n'ai pas la main serveur mutualisé

Cette erreur est dû à une désactivation de la directive allow_url_fopen contenue dans le fichier de configuration php.ini. La désactivation de cette directive est généralement réalisée par mesure de sécurité.
En fait cela dépend de ton hébergeur.
Certains hébergeurs permettent à leur client de modifier le php.ini, c'est le cas par exemple de Celeonet (via l'interface client) mais aussi de 1and1 en créant un php.ini personnalisé:

D'après ton message d'erreur, il semblerait que tu sois chez 1and1, voici donc quelques pistes:
http://faq.1and1.fr/scripts/php/phpini/index.html

Code : Tout sélectionner

allow_url_fopen = On


j'ai essaye sur un serveur qui je pense est en php5 et la pas d'erreur mais rien ne se passe
je ne c'est pas d'ailleur ce qu'il doit se passer si un dossier ou un fichier doit se creer :oops:

enfin d'apres cette ligne :>>
// On enregistre le code récupéré dans un fichier   
file_put_contents($nom_fichier,$code_html); 
cela doit s'enregistrer ou ? dans un nouveau dossier ou directement fichier google.html
Si il ne s'affiche rien, c'est bon signe.
En revanche, un fichier devrait être créé dans le même répertoire que là où est situé ton script.
Si ce n'est pas le cas, il est possible qu'il y ait un problème de droit... Via un logiciel FTP modifie le chmod du répertoire qui contient ton script pour lui donner tous les droits en écriture.
Quand tout le reste a échoué, lisez le mode d'emploi...