Мой скрипт собирает набор правил htaccess на основе переданной в него информации и предоставляет пользователю загружаемый текстовый файл с распечатанными правилами. Идея заключается в том, что администратор заполняет некоторую информацию о форме, щелкает ссылку для загрузки, получает текстовый файл с распечатанными правилами, открывает файл, копирует правила и вставляет их в файл htaccess своего домена.
Мне удалось собрать сценарий, который создает эти правила. Однако текстовый файл, кажется, игнорирует все символы новой строки, которые я печатаю на нем. Вкладки работают, а новые строки - нет. Это должно быть как-то связано с кодировкой, которую я использую с вызовами функций header (), но я не уверен, что делаю неправильно. Никакое количество Google, как мне показалось, не указывало мне правильное направление. Любой вклад будет оценен.
Вот код:
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="htaccess.txt"');
header('Content-Transfer-Encoding: binary');
$id = addslashes( $_GET['id']);
$location = addslashes( $_GET['location'] );
$location = substr($location, strpos($location, '/', 9 ) + 1 ) . ( ( substr( $location, strlen($location) - 1 ) == '/' ) ? '' : '/' );
$regEx = '([0-9a-zA-Z-_]*)';
$lines = array();
for( $x = 0; $x < 10; $x++ ) {
$line = 'RewriteRule ^' . $location;
for( $y = 1; $y <= $x; $y++ )
$line .= $regEx . '/';
$line .= '*$' . "\t\t\t\t\t";
$line .= "http://localhost/redirect.php?ring=$id";
$line .= ( $x >= 1 ) ? '&link=$1' : '';
$line .= ( $x > 1 ) ? '&tag' . ( $x - 1 ) . '=$' . $x . ' [NC]' . "\n" : "\n";
$lines[] = $line;
}
foreach( $lines as $line )
echo $line;