mirror of
https://github.com/php/php-src.git
synced 2025-08-21 01:45:16 +02:00

This patch adds missing newlines, trims multiple redundant final newlines into a single one, and trims redundant leading newlines. According to POSIX, a line is a sequence of zero or more non-' <newline>' characters plus a terminating '<newline>' character. [1] Files should normally have at least one final newline character. C89 [2] and later standards [3] mention a final newline: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character." Although it is not mandatory for all files to have a final newline fixed, a more consistent and homogeneous approach brings less of commit differences issues and a better development experience in certain text editors and IDEs. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206 [2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2 [3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
48 lines
1.1 KiB
PHP
48 lines
1.1 KiB
PHP
<?php
|
|
error_reporting(E_ALL);
|
|
if (!extension_loaded('zip')) {
|
|
dl('zip.so');
|
|
}
|
|
|
|
$name = __DIR__ . '/encrypted.zip';
|
|
$pass = 'secret';
|
|
$file = 'foo.php';
|
|
|
|
echo "== Create with per file password\n";
|
|
|
|
$zip = new ZipArchive;
|
|
$zip->open($name, ZIPARCHIVE::CREATE | ZipArchive::OVERWRITE);
|
|
$zip->addFile(__FILE__, $file);
|
|
$zip->setEncryptionName($file, ZipArchive::EM_AES_256, $pass);
|
|
$zip->close();
|
|
|
|
echo "== Create with global password\n";
|
|
|
|
$zip = new ZipArchive;
|
|
$zip->open($name, ZIPARCHIVE::CREATE | ZipArchive::OVERWRITE);
|
|
$zip->setPassword($pass);
|
|
$zip->addFile(__FILE__, $file);
|
|
$zip->setEncryptionName($file, ZipArchive::EM_AES_256);
|
|
$zip->close();
|
|
|
|
echo "== Stat\n";
|
|
|
|
$zip->open($name);
|
|
print_r($zip->statName($file));
|
|
|
|
echo "== Read\n";
|
|
|
|
$zip->setPassword($pass);
|
|
$text = $zip->getFromName($file);
|
|
printf("Size = %d\n", strlen($text));
|
|
$zip->close();
|
|
|
|
echo "== Stream with context\n";
|
|
|
|
$ctx = stream_context_create(array(
|
|
'zip' => array(
|
|
'password' => $pass
|
|
)
|
|
));
|
|
$text = file_get_contents("zip://$name#$file", false, $ctx);
|
|
printf("Size = %d\n", strlen($text));
|