Php-curl : recuperation code source site web

Résolu/Fermé
frederic987 Messages postés 6 Date d'inscription lundi 21 novembre 2011 Statut Membre Dernière intervention 8 janvier 2012 - 21 nov. 2011 à 13:13
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 8 janv. 2012 à 18:06
Bonjour,

J'essaie de mettre en place le bout de script trouve ici : https://forums.commentcamarche.net/forum/affich-2266318-php-recuperer-le-code-source-d-une-page-web

<?php

$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, 'http://www.commentcamarche.net');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
$lines = array();
$lines = explode("\n", $file_contents);

// display file line by line
foreach($lines as $line_num => $line) {
echo "Line # {$line_num} : ".htmlspecialchars($line)."<br />\n";
}

?> 


Il marche bien tant que l'url est externe, mais impossible de le faire fonctionner en local (sur un site local). Est ce que quelqu'un aurait une idee sur ce qui pourrait l'en empecher ? configuration php.ini ? apache ?

Merci

A voir également:

6 réponses

frederic987 Messages postés 6 Date d'inscription lundi 21 novembre 2011 Statut Membre Dernière intervention 8 janvier 2012 1
8 janv. 2012 à 11:22
Conclusion : c'etait bien la configuration SSL d'apache qui pechait. Toujours pas de nouvelle configuration permettant une utilisation normale neanmoins.
1
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
8 janv. 2012 à 18:06
Merci pour le retour :)
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
21 nov. 2011 à 16:27
Bonjour,

Tu peux nous montrer comment tu fais ton appel sur un site local ? A priori il n'y a pas de raisons pour que le comportement soit différent...

Xavier
0
frederic987 Messages postés 6 Date d'inscription lundi 21 novembre 2011 Statut Membre Dernière intervention 8 janvier 2012 1
Modifié par frederic987 le 22/11/2011 à 04:56
Bonjour

J'ai decouvert depuis que ce comportement etait du a une mauvaise configuration d'apache2. Tous mes sites locaux sont en https et la configuration de rewrite semble inappropriee, puisque en desactivant ssl et le renvoi vers 443 : ca marche.

Voici la configuration du vhost :

NameVirtualHost 192.168.0.15:80 
<VirtualHost 192.168.0.15:80> 

        DocumentRoot            /var/www/www.local.try 
     
        ServerName              www.local.try 
        ServerAlias             local.try *.local.try 
        ServerAdmin             admin@localhost 
         
        # Directory directives 
        <Directory /var/www/www.local.try> 
            Options             None 
            AllowOverride       None 
            Order               deny,allow 
            Allow from          10.0.1.2 10.0.1.3 10.0.1.4 10.0.1.5 
        </Directory> 
         
         
        # PHP directives 
        php_flag                display_errors 0 

        # SSL Engine Switch: 
        SSLEngine               Off 


        # Log files 
        ErrorLog                /var/log/apache2/www.local.try-error.log 
        CustomLog               /var/log/apache2/www.local.try-access.log vhost_combined 
         
        # Possible values include: debug, info, notice, warn, error, crit, 
        # alert, emerg. 
        LogLevel                info 


        # Redirect http to https 
        RewriteEngine           On 
        RewriteOptions          Inherit 

        RewriteLog /var/log/apache2/https_rewrite.log 
        RewriteLogLevel 1 
         
        RewriteCond %{SERVER_PORT} !^443$ 
        RewriteRule ^/(.*) https://%{SERVER_NAME}/ [L,R] 
</VirtualHost> 

NameVirtualHost 192.168.0.15:443 
<VirtualHost 192.168.0.15:443> 

        DocumentRoot            /var/www/www.local.try 
     
        ServerName              www.local.try 
        ServerAlias             local.try *.local.try 
        ServerAdmin             admin@localhost 
         
        # Directory directives 
        <Directory /var/www/www.local.try> 
            Options             None 
            AllowOverride       None 
            Order               deny,allow 
            Allow from          10.0.1.2 10.0.1.3 10.0.1.4 10.0.1.5 
        </Directory> 
         
         
        # PHP directives 
        php_flag                display_errors 0 

        # SSL Engine Switch: 
        SSLEngine               On 
        SSLProtocol             all -SSLv2 

        #   Client Authentication (Type): 
        SSLCertificateFile      /home/mrman/.ssl/certs/local-cert.pem 
        SSLCertificateKeyFile   /home/mrman/.ssl/private/local-key.pem 
         
        # Log files 
        ErrorLog                /var/log/apache2/www.local.try-error.log 
        CustomLog               /var/log/apache2/www.local.try-access.log vhost_combined 
         
        # Possible values include: debug, info, notice, warn, error, crit, 
        # alert, emerg. 
        LogLevel                info 
</VirtualHost>


Car ayant fait le test sur des serveurs externes https, ca marche.

Pour l'appel sur site local, je remplace juste par l'url local : http(s)://site.local

Merci de ton aide.
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 22/11/2011 à 10:00
Ah, désolé, mais là ça va être un peu trop complexe pour que je t'aide sans passer trois heures à réviser mon apache, surtout avec SSL que je n'ai jamais utilisé...
Essaie éventuellement en forçant le port dans ton URL locale ?
0
frederic987 Messages postés 6 Date d'inscription lundi 21 novembre 2011 Statut Membre Dernière intervention 8 janvier 2012 1
24 nov. 2011 à 06:03
Non mais merci quand meme. ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
24 nov. 2011 à 11:40
Bonjour,

Pourquoi utiliser CURL????

Y a en php l'instruction file_get_contents qui fonctionne très bien sur un URL:

$monFichier = file_get_contents('http://www.commentcamarche.net');

echo $monFichier;

Si l'URL contient des caractères spéciaux, penser à encoder l'URL avec urlencode()


A+
0
frederic987 Messages postés 6 Date d'inscription lundi 21 novembre 2011 Statut Membre Dernière intervention 8 janvier 2012 1
24 nov. 2011 à 13:05
Bonjour mpmp93

file-get-contents fait partie des fonctions comme fopen qui sont desactiver sur le serveur ou le script doit s'executer. ;)
0