file() ou file_get_contents() en safe mode

file() ou file_get_contents() en safe mode - PHP - Programmation

Marsh Posté le 21-04-2006 à 12:21:07    

Bonjour,
 
Voila mon problème : mon nouvel hébergeur est en safe mode  :(  
Les fonctions que j'utilisais : file() ou file_get_contents() ne marche plus.
Ces fonctions me servait à récupérer le code html d'une page web dans une variable.
Voila mon script :

Citation :

$html = file_get_contents("http://.../page.asp?variable=1234567" );


ou

Citation :

$html = implode("", file("http://.../page.asp?variable=1234567" ));


Il faudrait que je trouve un script qui marche en safe mode.
Quelqu'un pourrait-il m'aider à résoudre mon problème?


Message édité par channot77 le 21-04-2006 à 12:22:33
Reply

Marsh Posté le 21-04-2006 à 12:21:07   

Reply

Marsh Posté le 21-04-2006 à 13:13:47    

Utilise un script Perl.

Reply

Marsh Posté le 21-04-2006 à 13:26:58    

nargy a écrit :

Utilise un script Perl.


Je ne connais pas du tout ce langage. Es tu sur que ce langage résoudrait mon problème? Est ce que c'est facile à mettre en place?

Reply

Marsh Posté le 21-04-2006 à 13:36:28    

Reply

Marsh Posté le 21-04-2006 à 13:44:20    

OK et merci  :)  
 
Si c'est pas trop demandé, pourait on me donner quelques pistes pour ce script en perl car je ne m'y connait vraiment pas.
Merci d'avance  ;)

Reply

Marsh Posté le 21-04-2006 à 13:48:53    

Poste sur la catégorie perl. Mais avant fait une recherche si il y a déjà un problème similaire résolu, lis les tutos qui y sont, et mets en bookmark: http://perl.com/
http://perldoc.com/

Reply

Marsh Posté le 21-04-2006 à 14:29:56    

Tu sais comment on integre le perl dans un script php?

Reply

Marsh Posté le 21-04-2006 à 14:54:42    

Tu fait simplement ta page en perl, si ton hébergeur accepte perl.

Reply

Marsh Posté le 21-04-2006 à 15:00:12    

nargy a écrit :

Tu fait simplement ta page en perl, si ton hébergeur accepte perl.


Mon hebergeur integre un repertoire CGI-BIN. Ca va?

Reply

Marsh Posté le 21-04-2006 à 15:07:43    

moui... si tu mets l'extension .pl elle seront prisent comme du perl. sinon avec cgi-bin, tu peut utiliser d'autre languages que perl. c'est quoi ton hébergeur?

Reply

Marsh Posté le 21-04-2006 à 15:07:43   

Reply

Marsh Posté le 21-04-2006 à 15:08:42    

nargy a écrit :

moui... si tu mets l'extension .pl elle seront prisent comme du perl. sinon avec cgi-bin, tu peut utiliser d'autre languages que perl. c'est quoi ton hébergeur?


rapidomaine

Reply

Marsh Posté le 21-04-2006 à 16:06:46    

J'ai posté un message dans la rubrique perl et on m'a proposé ce script :

Code :
  1. perl -MLWP::Simple -e 'print get shift' http://www.tonsite.com


Mais je ne sais pas comment j'insere ce code dans mon script php ni comment je peux récupérer ma variable pour que je puisse ensuite la traiter en php.  

Reply

Marsh Posté le 21-04-2006 à 16:45:32    

bon, tu va pas t'en sortir, essaye en PHP avec fsockopen()
PS: t'a pas de moyen plus simple, comme faire un include?

Reply

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

tu ouvre un connexion TCP avec fsockopen(), puis tu envoie une fausse requête HTTP:


GET /path/file.ext HTTP/1.1
 


le serveur te renvoie la page:


Host: blabla
Server: blabla
Content-type: blabla
blabla: blabla
 
<html><body>...</body></html>


puis tu ferme la connexion.
Note: le séparateur est "\n" pour le header HTTP.

Reply

Marsh Posté le 21-04-2006 à 16:57:34    

nargy a écrit :

bon, tu va pas t'en sortir, essaye en PHP avec fsockopen()


Tu sais comment on parametre cette fonction?

Reply

Marsh Posté le 21-04-2006 à 17:05:00    

il y a des exemples sur php.net

Reply

Marsh Posté le 21-04-2006 à 20:00:48    

G trouver un truc ki marche :

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. }


 

Reply

Marsh Posté le 21-04-2006 à 20:04:02    

Seul petit problème : Si l'url est erroné la variable contient tout de meme le code de la page d'erreur.
Je préférerait pouvoir tester si l'url est bonne et dans le cas ou elle est mauvaise renvoyer 'false'?


Message édité par channot77 le 21-04-2006 à 20:11:35
Reply

Marsh Posté le 21-04-2006 à 20:50:40    

ah bravo, j'avais pas du tout pensé à CURL (c'est traditionnellement module facultatif de PHP). À retenir.
 
> Je préférerait pouvoir tester si l'url est bonne et dans le cas ou elle est mauvaise renvoyer 'false'?
http://curl.haxx.se/libcurl/c/libcurl-errors.html

Reply

Marsh Posté le 21-04-2006 à 21:37:50    

En fait mon problème c que si je met une url bidon la fonction va me renvoyer le code html de la page d'erreur (normal puisque l'url pointe sur aucun fichier existant). Donc dans tous les cas la fonction renvoit le contenu d'une page (une page reel ou une page d'erreur). Moi j'aimerais que la fonction renvoi un booleen pour dire si la page renvoyée est une page d'erreur ou non.

Reply

Marsh Posté le 21-04-2006 à 22:27:55    

Stp, prends le temps de lire les liens que je te donne:

Citation :


CURLE_HTTP_RETURNED_ERROR (22)
 
This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server returns an error code that is >= 400.


c'est le code d'erreur retourné par curl quand la page n'est pas retournéee avec un code d'erreur 400 (OK)
 
voir http://php.net/ pour d'autres infos, et des exemples.

Reply

Marsh Posté le 21-04-2006 à 23:32:08    

Excuse j'avais pa piger le system des codes d'erreur.
Je crois que cette fois ci le problème est résolu.
Merci à tous!!!  ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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