2011-09-09 9 views
1

Je travaille sur un système de mise en cache rapide pour travailler avec un framework PHP. Fondamentalement, toutes les pages statiques n'ont pas besoin d'être chargées avec framework, je voulais donc utiliser CURL. Pour la ligne de commande, il fonctionne très rapide:CLI cURL to PHP cURL

$ curl http://www.example.com/en/terms-of-use.html > web/cache/en/terms-of-use.html 

Ma solution actuelle est d'obtenir les données de fichiers avec boucle, ouvert/créer un fichier et de mettre toutes les données qui. Je ne suis pas très familier avec curl, mais il devrait y avoir un moyen plus rapide je pense que si la version CLI est très courte.

+0

construisez-vous un proxy inverse? – arnaud576875

+0

Cela n'a pas de sens que Curl est plus rapide que de visiter la page Web dans n'importe quel autre navigateur .. Je suppose que vous parlez de charger statiquement le HTML dans un fichier et simplement afficher ce fichier. Utiliser curl à la volée ne devrait pas être plus rapide. –

+0

Peut-être que je l'ai formulé mal. Et c'est un peu comme proxy inverse que @ arnaud576875 dit. J'enregistre le résultat une fois sur une page HTML statique et le donne à l'utilisateur. Aucun cadre à charger pour l'utilisateur ne devrait vraiment faire la différence. –

Répondre

0

Je ne sais pas si c'est plus rapide, je dois quand même faire quelques benchmarks, mais c'est beaucoup plus court à écrire.

<?php 
    if(!copy('http://www.website.com/en/homepage.html', 'web/cache/en/homepage.html')) 
    { 
     // Notify someone 
    } 
?> 
1

Vous pouvez le faire dans l'une des deux façons:

Utilisez la fonction système PHP/processus appelle ....

$page = system("curl http://www.example.com/en/terms-of-use.html"); 
    print "<pre>"; 
    print_r($page); 
    print "</pre>"; 

ou vous pouvez utiliser les boucles natives bibliothèques PHP

<?php 
     $url = "http://www.example.com/en/terms-of-use.html"; 
     print $url; 
     $ch = curl_init($url); 
     if(!$ch) 
     { 
     $errstr = "Could not connect to server."; 
     } 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
     $page = curl_exec($ch); 
     print "<pre>"; 
     print_r($page); 
     print "</pre>"; 
    ?>