Сохраните сжатый html-файл на сервере с помощью PHP gzipp - PullRequest
2 голосов
/ 03 марта 2011

Я использую этот скрипт для автоматического сохранения PHP-файла в файл HTML на моем сервере:

<?php
$page=file_get_contents('http://yourdomain.com/index.php');
$fp=fopen('index.html','w+');
fputs($fp,$page);
fclose($fp);
?>

Как я могу заставить сервер также сохранять GZIP-версию index.php на сервере?

Цель состоит в том, чтобы в папке были следующие файлы:

  • пошаговая indexphp-INTO-indexhtml-и-indexgz.php

  • index.php

  • index.html

  • index.gz

1 Ответ

3 голосов
/ 03 марта 2011

Если вы можете получить доступ к странице только по URL (т. Е. Это не файл на вашем собственном сервере), как указано в нескольких комментариях, - вы сможете получить доступ только к выходу PHP / ASP / независимо от того, чтофайл.

Если это не локальный файл

<?php
$theUrl = 'http://www.server.com/filename.htm';
$theOutput = file_get_contents( $theUrl );
$outBase = preg_replace( '/[^\d\w]/' , '_' , $theUrl );
// Output standard HTML file (Filename may be clunky, but, up to you to fix that)
$outHTM = $outBase.'.htm';
file_put_contents( $outHTM , $theOutput );
// Output a GZipped version of same
$outGZ = $outBase.'.htm.gz';
$theOutput = gzencode( $theOutput , 9 );
file_put_contents( $outGZ , $theOutput );
?>

Если это локальный файл, то вы можете сделать выше, но также ...

<?php
$theLocalFile = '/somefolder/anotherfolder/index.php';
$theLocalContent = file_get_contents( $theLocalFile );
$localBase = preg_replace( '/[^\d\w]/' , '_' , $theLocalContent );
// Save an uncompressed copy
$outLocal = $localBase.'.php';
file_put_contents( $outLocal , $theLocalContent );
// Save a GZipped copy
$outGZ = $localBase.'.php.gz';
$theOutput = gzencode( $theLocalContent , 9 );
file_put_contents( $outGZ , $theOutput );
?>
...