Php-curl : recuperation code source site web [Résolu/Fermé]

Signaler
Messages postés
6
Date d'inscription
lundi 21 novembre 2011
Statut
Membre
Dernière intervention
8 janvier 2012
-
Reivax962
Messages postés
3527
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
12 décembre 2019
-
Bonjour,

J'essaie de mettre en place le bout de script trouve ici : http://www.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

9 réponses

Messages postés
6
Date d'inscription
lundi 21 novembre 2011
Statut
Membre
Dernière intervention
8 janvier 2012
1
Conclusion : c'etait bien la configuration SSL d'apache qui pechait. Toujours pas de nouvelle configuration permettant une utilisation normale neanmoins.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 62576 internautes nous ont dit merci ce mois-ci

Reivax962
Messages postés
3527
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
12 décembre 2019
920
Merci pour le retour :)
Messages postés
3527
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
12 décembre 2019
920
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
Messages postés
6
Date d'inscription
lundi 21 novembre 2011
Statut
Membre
Dernière intervention
8 janvier 2012
1
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.
Reivax962
Messages postés
3527
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
12 décembre 2019
920
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 ?
Messages postés
6
Date d'inscription
lundi 21 novembre 2011
Statut
Membre
Dernière intervention
8 janvier 2012
1
Non mais merci quand meme. ;)
Messages postés
6709
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1226
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+
Messages postés
6
Date d'inscription
lundi 21 novembre 2011
Statut
Membre
Dernière intervention
8 janvier 2012
1
Bonjour mpmp93

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