Récupérer la source d'une page en php

Récupérer la source d'une page en php - PHP - Programmation

Marsh Posté le 19-04-2006 à 21:30:21    

Bonsoir,
 
J'utilisait la fonction "implode()" en php pour parser des pages html.
Mon site était hébergé sur Free mais je viens de changer d'hébergeur.
Depuis cette fonction ne marche plus, la variable qui contenait la source est vide.
 
Pouvez-vous m'aider? Peut-être existe-t-il une fonction plus appropriée?
 
Merci

Reply

Marsh Posté le 19-04-2006 à 21:30:21   

Reply

Marsh Posté le 19-04-2006 à 21:32:57    

Qui t'a dit que c'est cette fonction qui ne marche plus ??? Je ne vois pas l'interer de la désactiver. Le problème vient surement d'ailleurs


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 19-04-2006 à 21:36:43    

Voila mon script :
$code = @implode("", file("http://....));
 
Avant ca marchait, je récuperait la source de la page web mais maintenant j'ai $code=NULL.

Reply

Marsh Posté le 19-04-2006 à 21:38:32    

Est-ce-que qqun a une autre façon de récupérer la source d'une page web?

Reply

Marsh Posté le 19-04-2006 à 21:39:53    

bah c'est peut être "file" qui merde
 

Citation :


// Un autre exemple, pour obtenir une page web dans une chaîne. Voir aussi la fonction file_get_contents().
$html = implode ('', file ('http://www.example.com/'));


Essaye avec file_get_contents si vraiment ça marche pas
 
http://fr.php.net/manual/fr/function.file.php
http://fr.php.net/manual/fr/functi [...] ntents.php


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 19-04-2006 à 21:50:47    

Jvien de trouver le probleme, j'ai retirer le @ et j'ai l'erreur php :
Warning: file(): URL file-access is disabled in the server configuration
Donc c'est bien le serveur qui bloque.

Reply

Marsh Posté le 20-04-2006 à 12:50:54    

Pourriez vous me donner d'autre fonctions permettant de récupérer le contenu d'une page web?  
Peut etre qu'avec 1 autre fonction ca peut marcher!
Merci

Reply

Marsh Posté le 20-04-2006 à 13:23:40    

avec curl si c'est dispo chez ton hebergeur!

Reply

Marsh Posté le 20-04-2006 à 16:54:16    

tu peux faire avec un fopen aussi normalement.
@+

Reply

Marsh Posté le 20-04-2006 à 17:33:38    

Jvien de recevoir un mail de mon hebergeur et en fait c'est le safe mode qui est activer. Donc impossible d'utiliser les fonctions file(), fopen(), etc...
Pour m'aider à résoudre mon problème ils m'ont filer un lien où je suis censé comprendre comment résoudre mon problème mais je n'y comprend rien : http://docs.mandragor.org/files/Pr [...] -mode.html
Est-ce quelqu'un à déjà eu ce problème et saurait m'aider?

Reply

Marsh Posté le 20-04-2006 à 17:33:38   

Reply

Marsh Posté le 20-04-2006 à 17:58:48    

en passant par les socket et en envoyant le header d'une requete http tu peux aussi recuperer la source normalement, faut voir si c'est pas aussi bloqué par le safe mode.

Reply

Marsh Posté le 20-04-2006 à 18:26:08    

J'ai fai plusieur recherche sur le net pour mon problème et plusieurs fois il parlait d'un fichier php.ini qui permettrait de configurer le php.
Sauriez vous où on peut trouver ce fichier?

Reply

Marsh Posté le 20-04-2006 à 18:29:45    

Dans ton cas tu peux pas le faire, vu qu'apperemment t'es en mutualisé


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-04-2006 à 20:16:12    

anapajari a écrit :

avec curl si c'est dispo chez ton hebergeur!


Merci anapajari!
Avec curl ca marche impec!
Voila ma fonction :

Code :
  1. function get_content($url)
  2. {
  3.    $ch = curl_init();
  4.    curl_setopt ($ch, CURLOPT_URL, $url);
  5.    curl_setopt ($ch, CURLOPT_HEADER, 0);
  6.    ob_start();
  7.    curl_exec ($ch);
  8.    curl_close ($ch);
  9.    $string = ob_get_contents();
  10.    ob_end_clean();
  11.  
  12.    return $string;   
  13. }


Ca marche sauf que dans le cas ou l'url n'est pas bonne la variable contient tout de meme le contenu de la page d'erreur.
Yaurait-il un moyen pour tester l'url et renvoyer 'false' si elle est mauvaise? Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed