File-get-contents sur un site externe.

Répondre
raphlight
le 08/12/2008 à 14:57
raphlight
Bonjour,

J'ai un script qui prélève les caractères entre les balises <h3> et </h3> d'une page précise.

Le voici, il marche parfaitement lorsqu'il est effectué sur une page interne du site :

<?php
function get_file_title($file){
$caract = file_get_contents($file);
preg_match( "/<h3>(.*)<\/h3>/i", $caract, $match );
return strip_tags($match[0]);
}
echo get_file_title("http://un-site-externe.com");
?>


Mais ce site externe ne semble pas avoir autorisé le prélèvement de caratères externe avec php :

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in ...



Y a t-il tout de même un moyen pour ?

J'ai entendu vite fait parler de "curl" en cherchant sur google...
http://raphlight.free.fr/trad.php
LA GLOBULE
le 08/12/2008 à 15:13
LA GLOBULE
Oui, il faut utiliser CURL dans ce genre de cas.
Faire un fopen ou un file_get_contents distant n'est possible que si la directive allow_url_fopen est activée, ce qui est rarement le cas.
raphlight
le 08/12/2008 à 15:28
raphlight
CURL, c'est un langage ?

Est-il souvent utile ?

Comment ça marche ?

Et dans mon cas ?
http://raphlight.free.fr/trad.php
raphlight
le 08/12/2008 à 15:32
raphlight
Je viens de faire quelques recherches.

Je tombe sur le site officiel de cURL, dans la page téléchargement il doit bien y avoir un bonne centaine de liens différents...

Je suis sous Windows, donc je pense qu'il me faut la version WIN 32 ? mais y'a GENERIC, cygwin ou MSVC...

Je suis dans le flou.
http://raphlight.free.fr/trad.php
LA GLOBULE
le 08/12/2008 à 16:19
LA GLOBULE
Pourquoi ne pas simplement lire la partie CURL du manuel PHP ? Ca serait plus adapté et moins gonflant.
En plus, ils doivent surement expliquer comment activer la lib sous windows.

Sinon, voici une fonction qui permet de remplacer le file_get_contents :

<?php
function get_url($url) {
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$page = curl_exec($curl);
$error = curl_errno($curl);
curl_close($curl);

if ($error == 0) return $page;
return false;
}
?>
raphlight
le 12/12/2008 à 16:54
raphlight
Hum...pour ce que je veux faire ca donnerait donc un truk du genre :

<?php
function get_file($file){
$curl = curl_init($file);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$page = curl_exec($curl);
$error = curl_errno($curl);
curl_close($curl);
preg_match( "/<h3>(.*)<\/h3>/i", $page, $match );
return strip_tags($match[0]);
}
echo get_file_title("http://un-site-externe.com");
?>


Si j'ai bien compris ?



Par contre je ne sais pas comment installer cURL... j'ai téléchargé un fichier zip. C'est bien joli mais j'en fais quoi ?
http://raphlight.free.fr/trad.php
Répondre
LoadingChargement en cours