diff options
| author | Oleh Prypin <oleh@pryp.in> | 2021-01-20 10:48:45 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-20 10:48:45 +0100 |
| commit | 6f4309217326430145564ae8b1bb393ea684f39f (patch) | |
| tree | bf4025a5e709426dc927c4afc4fd2286f8450ed9 /tests/examplefiles/php/test.php.output | |
| parent | f0445be718da83541ea3401aad882f3937147263 (diff) | |
| download | pygments-git-6f4309217326430145564ae8b1bb393ea684f39f.tar.gz | |
Also add auto-updatable output-based tests to examplefiles (#1689)
Co-authored-by: Georg Brandl <georg@python.org>
Diffstat (limited to 'tests/examplefiles/php/test.php.output')
| -rw-r--r-- | tests/examplefiles/php/test.php.output | 3104 |
1 files changed, 3104 insertions, 0 deletions
diff --git a/tests/examplefiles/php/test.php.output b/tests/examplefiles/php/test.php.output new file mode 100644 index 00000000..7d63ddb3 --- /dev/null +++ b/tests/examplefiles/php/test.php.output @@ -0,0 +1,3104 @@ +'<?php' Comment.Preproc +'\n\n' Text + +'$disapproval_ಠ_ಠ_of_php' Name.Variable +' ' Text +'=' Operator +' ' Text +"'unicode var'" Literal.String.Single +';' Punctuation +'\n\n' Text + +'$test' Name.Variable +' ' Text +'=' Operator +' ' Text +'function' Keyword +'(' Punctuation +'$a' Name.Variable +')' Punctuation +' ' Text +'{' Punctuation +' ' Text +'$lambda' Name.Variable +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +' ' Text +'}' Punctuation +'\n\n' Text + +'/**\n * Zip class file\n *\n * @package fnord.bb\n * @subpackage archive\n */' Literal.String.Doc +'\n\n' Text + +'// Unlock?\n' Comment.Single + +'if' Keyword +'(' Punctuation +'!' Operator +'defined' Name.Builtin +'(' Punctuation +"'UNLOCK'" Literal.String.Single +')' Punctuation +' ' Text +'||' Operator +' ' Text +'!' Operator +'UNLOCK' Name.Other +')' Punctuation +'\n ' Text +'die' Keyword +'();' Punctuation +'\n \n' Text + +'// Load the parent archive class\n' Comment.Single + +'require_once' Keyword +'(' Punctuation +'ROOT_PATH' Name.Other +'.' Operator +"'/classes/archive.class.php'" Literal.String.Single +');' Punctuation +'\n\n' Text + +'class' Keyword +' ' Text +'Zip\\Zippಠ_ಠ_' Name.Class +' ' Text +'{' Punctuation +'\n\n' Text + +'}' Punctuation +'\n\n' Text + +'/**\n * Zip class\n *\n * @author Manni <manni@fnord.name>\n * @copyright Copyright (c) 2006, Manni\n * @version 1.0\n * @link http://www.pkware.com/business_and_developers/developer/popups/appnote.txt\n * @link http://mannithedark.is-a-geek.net/\n * @since 1.0\n * @package fnord.bb\n * @subpackage archive\n */' Literal.String.Doc +'\n' Text + +'class' Keyword +' ' Text +'Zip' Name.Class +' ' Text +'extends' Keyword +' ' Text +'Archive' Name.Other +' ' Text +'{' Punctuation +'\n ' Text +"/**\n * Outputs the zip file\n *\n * This function creates the zip file with the dirs and files given.\n * If the optional parameter $file is given, the zip file is will be\n * saved at that location. Otherwise the function returns the zip file's content.\n *\n * @access public\n *\n * @link http://www.pkware.com/business_and_developers/developer/popups/appnote.txt\n * @param string $filename The path where the zip file will be saved\n *\n * @return bool|string Returns either true if the fil is sucessfully created or the content of the zip file\n */" Literal.String.Doc +'\n ' Text +'function' Keyword +' ' Text +'out' Name.Function +'(' Punctuation +'$filename' Name.Variable +' ' Text +'=' Operator +' ' Text +'false' Keyword +')' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'// Empty output\n' Comment.Single + +' ' Text +'$file_data' Name.Variable +' ' Text +'=' Operator +' ' Text +'array' Keyword +'();' Punctuation +' ' Text +'// Data of the file part\n' Comment.Single + +' ' Text +'$cd_data' Name.Variable +' ' Text +'=' Operator +' ' Text +'array' Keyword +'();' Punctuation +' ' Text +'// Data of the central directory\n' Comment.Single + +'\n ' Text +'// Sort dirs and files by path length\n' Comment.Single + +' ' Text +'uksort' Name.Builtin +'(' Punctuation +'$this' Name.Variable +'->' Operator +'dirs' Name.Attribute +',' Punctuation +' ' Text +"'sort_by_length'" Literal.String.Single +');' Punctuation +'\n ' Text +'uksort' Name.Builtin +'(' Punctuation +'$this' Name.Variable +'->' Operator +'files' Name.Attribute +',' Punctuation +' ' Text +"'sort_by_length'" Literal.String.Single +');' Punctuation +'\n\n ' Text +'// Handle dirs\n' Comment.Single + +' ' Text +'foreach' Keyword +'(' Punctuation +'$this' Name.Variable +'->' Operator +'dirs' Name.Attribute +' ' Text +'as' Keyword +' ' Text +'$dir' Name.Variable +')' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'$dir' Name.Variable +' ' Text +'.=' Operator +' ' Text +"'/'" Literal.String.Single +';' Punctuation +'\n ' Text +'// File part\n' Comment.Single + +'\n ' Text +'// Reset dir data\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +'\n\n ' Text +'// Local file header\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'"' Literal.String.Double +'\\x50' Literal.String.Escape +'\\x4b' Literal.String.Escape +'\\x03' Literal.String.Escape +'\\x04' Literal.String.Escape +'"' Literal.String.Double +';' Punctuation +' ' Text +'// Local file header signature\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'10' Literal.Number.Integer +');' Punctuation +' ' Text +'// Version needed to extract\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// General purpose bit flag\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Compression method\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Last mod file time\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Last mod file date\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// crc-32\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Compressed size\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Uncompressed size\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$dir' Name.Variable +'));' Punctuation +' ' Text +'// File name length\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Extra field length\n' Comment.Single + +'\n ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'$dir' Name.Variable +';' Punctuation +' ' Text +'// File name\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +' ' Text +'// Extra field (is empty)\n' Comment.Single + +'\n ' Text +'// File data\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +' ' Text +'// Dirs have no file data\n' Comment.Single + +'\n ' Text +'// Data descriptor\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// crc-32\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Compressed size\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Uncompressed size\n' Comment.Single + +'\n ' Text +'// Save current offset\n' Comment.Single + +' ' Text +'$offset' Name.Variable +' ' Text +'=' Operator +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'implode' Name.Builtin +'(' Punctuation +"''" Literal.String.Single +',' Punctuation +' ' Text +'$file_data' Name.Variable +'));' Punctuation +'\n\n ' Text +'// Append dir data to the file part\n' Comment.Single + +' ' Text +'$file_data' Name.Variable +'[]' Punctuation +' ' Text +'=' Operator +' ' Text +'$dir_data' Name.Variable +';' Punctuation +'\n\n ' Text +'// Central directory\n' Comment.Single + +'\n ' Text +'// Reset dir data\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +'\n\n ' Text +'// File header\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'"' Literal.String.Double +'\\x50' Literal.String.Escape +'\\x4b' Literal.String.Escape +'\\x01' Literal.String.Escape +'\\x02' Literal.String.Escape +'"' Literal.String.Double +';' Punctuation +' ' Text +'// Local file header signature\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Version made by\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'10' Literal.Number.Integer +');' Punctuation +' ' Text +'// Version needed to extract\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// General purpose bit flag\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Compression method\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Last mod file time\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Last mod file date\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// crc-32\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Compressed size\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Uncompressed size\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$dir' Name.Variable +'));' Punctuation +' ' Text +'// File name length\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Extra field length\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// File comment length\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Disk number start\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Internal file attributes\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'16' Literal.Number.Integer +');' Punctuation +' ' Text +'// External file attributes\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'$offset' Name.Variable +');' Punctuation +' ' Text +'// Relative offset of local header\n' Comment.Single + +'\n ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +'$dir' Name.Variable +';' Punctuation +' ' Text +'// File name\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +' ' Text +'// Extra field (is empty)\n' Comment.Single + +' ' Text +'$dir_data' Name.Variable +' ' Text +'.=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +' ' Text +'// File comment (is empty)\n' Comment.Single + +'\n ' Text +'/*\n // Data descriptor\n $dir_data .= pack("V", 0); // crc-32\n $dir_data .= pack("V", 0); // Compressed size\n $dir_data .= pack("V", 0); // Uncompressed size\n */' Comment.Multiline +'\n \n ' Text +'// Append dir data to the central directory data\n' Comment.Single + +' ' Text +'$cd_data' Name.Variable +'[]' Punctuation +' ' Text +'=' Operator +' ' Text +'$dir_data' Name.Variable +';' Punctuation +'\n ' Text +'}' Punctuation +'\n\n ' Text +'// Handle files\n' Comment.Single + +' ' Text +'foreach' Keyword +'(' Punctuation +'$this' Name.Variable +'->' Operator +'files' Name.Attribute +' ' Text +'as' Keyword +' ' Text +'$name' Name.Variable +' ' Text +'=>' Operator +' ' Text +'$file' Name.Variable +')' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'// Get values\n' Comment.Single + +' ' Text +'$content' Name.Variable +' ' Text +'=' Operator +' ' Text +'$file' Name.Variable +'[' Punctuation +'0' Literal.Number.Integer +'];' Punctuation +'\n \n ' Text +'// File part\n' Comment.Single + +'\n ' Text +'// Reset file data\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +'\n \n ' Text +'// Detect possible compressions\n' Comment.Single + +' ' Text +'// Use deflate\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'function_exists' Name.Builtin +'(' Punctuation +"'gzdeflate'" Literal.String.Single +'))' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'$method' Name.Variable +' ' Text +'=' Operator +' ' Text +'8' Literal.Number.Integer +';' Punctuation +'\n\n ' Text +'// Compress file content\n' Comment.Single + +' ' Text +'$compressed_data' Name.Variable +' ' Text +'=' Operator +' ' Text +'gzdeflate' Name.Builtin +'(' Punctuation +'$content' Name.Variable +');' Punctuation +'\n\n ' Text +'// Use bzip2\n' Comment.Single + +' ' Text +'}' Punctuation +' ' Text +'elseif' Keyword +'(' Punctuation +'function_exists' Name.Builtin +'(' Punctuation +"'bzcompress'" Literal.String.Single +'))' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'$method' Name.Variable +' ' Text +'=' Operator +' ' Text +'12' Literal.Number.Integer +';' Punctuation +'\n\n ' Text +'// Compress file content\n' Comment.Single + +' ' Text +'$compressed_data' Name.Variable +' ' Text +'=' Operator +' ' Text +'bzcompress' Name.Builtin +'(' Punctuation +'$content' Name.Variable +');' Punctuation +'\n\n ' Text +'// No compression\n' Comment.Single + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n ' Text +'$method' Name.Variable +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n\n ' Text +'// Do not compress the content :P\n' Comment.Single + +' ' Text +'$compressed_data' Name.Variable +' ' Text +'=' Operator +' ' Text +'$content' Name.Variable +';' Punctuation +'\n ' Text +'}' Punctuation +'\n\n ' Text +'// Local file header\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'"' Literal.String.Double +'\\x50' Literal.String.Escape +'\\x4b' Literal.String.Escape +'\\x03' Literal.String.Escape +'\\x04' Literal.String.Escape +'"' Literal.String.Double +';' Punctuation +' ' Text +'// Local file header signature\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'20' Literal.Number.Integer +');' Punctuation +' ' Text +'// Version needed to extract\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// General purpose bit flag\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'$method' Name.Variable +');' Punctuation +' ' Text +'// Compression method\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Last mod file time\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Last mod file date\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'crc32' Name.Builtin +'(' Punctuation +'$content' Name.Variable +'));' Punctuation +' ' Text +'// crc-32\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$compressed_data' Name.Variable +'));' Punctuation +' ' Text +'// Compressed size\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$content' Name.Variable +'));' Punctuation +' ' Text +'// Uncompressed size\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$name' Name.Variable +'));' Punctuation +' ' Text +'// File name length\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Extra field length\n' Comment.Single + +'\n ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'$name' Name.Variable +';' Punctuation +' ' Text +'// File name\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +' ' Text +'// Extra field (is empty)\n' Comment.Single + +'\n ' Text +'// File data\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'$compressed_data' Name.Variable +';' Punctuation +'\n \n ' Text +'// Data descriptor\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'crc32' Name.Builtin +'(' Punctuation +'$content' Name.Variable +'));' Punctuation +' ' Text +'// crc-32\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$compressed_data' Name.Variable +'));' Punctuation +' ' Text +'// Compressed size\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$content' Name.Variable +'));' Punctuation +' ' Text +'// Uncompressed size\n' Comment.Single + +'\n ' Text +'// Save current offset\n' Comment.Single + +' ' Text +'$offset' Name.Variable +' ' Text +'=' Operator +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'implode' Name.Builtin +'(' Punctuation +"''" Literal.String.Single +',' Punctuation +' ' Text +'$file_data' Name.Variable +'));' Punctuation +'\n\n ' Text +'// Append file data to the file part\n' Comment.Single + +' ' Text +'$file_data' Name.Variable +'[]' Punctuation +' ' Text +'=' Operator +' ' Text +'$fd' Name.Variable +';' Punctuation +'\n\n ' Text +'// Central directory\n' Comment.Single + +'\n ' Text +'// Reset file data\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +'\n\n ' Text +'// File header\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'"' Literal.String.Double +'\\x50' Literal.String.Escape +'\\x4b' Literal.String.Escape +'\\x01' Literal.String.Escape +'\\x02' Literal.String.Escape +'"' Literal.String.Double +';' Punctuation +' ' Text +'// Local file header signature\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Version made by\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'20' Literal.Number.Integer +');' Punctuation +' ' Text +'// Version needed to extract\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// General purpose bit flag\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'$method' Name.Variable +');' Punctuation +' ' Text +'// Compression method\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Last mod file time\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Last mod file date\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'crc32' Name.Builtin +'(' Punctuation +'$content' Name.Variable +'));' Punctuation +' ' Text +'// crc-32\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$compressed_data' Name.Variable +'));' Punctuation +' ' Text +'// Compressed size\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$content' Name.Variable +'));' Punctuation +' ' Text +'// Uncompressed size\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$name' Name.Variable +'));' Punctuation +' ' Text +'// File name length\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Extra field length\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// File comment length\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Disk number start\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Internal file attributes\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'32' Literal.Number.Integer +');' Punctuation +' ' Text +'// External file attributes\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'$offset' Name.Variable +');' Punctuation +' ' Text +'// Relative offset of local header\n' Comment.Single + +'\n ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'$name' Name.Variable +';' Punctuation +' ' Text +'// File name\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +' ' Text +'// Extra field (is empty)\n' Comment.Single + +' ' Text +'$fd' Name.Variable +' ' Text +'.=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +' ' Text +'// File comment (is empty)\n' Comment.Single + +'\n ' Text +'/*\n // Data descriptor\n $fd .= pack("V", crc32($content)); // crc-32\n $fd .= pack("V", strlen($compressed_data)); // Compressed size\n $fd .= pack("V", strlen($content)); // Uncompressed size\n */' Comment.Multiline +'\n\n ' Text +'// Append file data to the central directory data\n' Comment.Single + +' ' Text +'$cd_data' Name.Variable +'[]' Punctuation +' ' Text +'=' Operator +' ' Text +'$fd' Name.Variable +';' Punctuation +'\n ' Text +'}' Punctuation +'\n\n ' Text +'// Digital signature\n' Comment.Single + +' ' Text +'$digital_signature' Name.Variable +' ' Text +'=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +'\n ' Text +'$digital_signature' Name.Variable +' ' Text +'.=' Operator +' ' Text +'"' Literal.String.Double +'\\x50' Literal.String.Escape +'\\x4b' Literal.String.Escape +'\\x05' Literal.String.Escape +'\\x05' Literal.String.Escape +'"' Literal.String.Double +';' Punctuation +' ' Text +'// Header signature\n' Comment.Single + +' ' Text +'$digital_signature' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Size of data\n' Comment.Single + +' ' Text +'$digital_signature' Name.Variable +' ' Text +'.=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +' ' Text +'// Signature data (is empty)\n' Comment.Single + +'\n ' Text +'$tmp_file_data' Name.Variable +' ' Text +'=' Operator +' ' Text +'implode' Name.Builtin +'(' Punctuation +"''" Literal.String.Single +',' Punctuation +' ' Text +'$file_data' Name.Variable +');' Punctuation +' ' Text +'// File data\n' Comment.Single + +' ' Text +'$tmp_cd_data' Name.Variable +' ' Text +'=' Operator +' ' Text +'implode' Name.Builtin +'(' Punctuation +"''" Literal.String.Single +',' Punctuation +' ' Text +'$cd_data' Name.Variable +')' Punctuation +'.' Operator +' ' Text +'// Central directory\n' Comment.Single + +' ' Text +'$digital_signature' Name.Variable +';' Punctuation +' ' Text +'// Digital signature\n' Comment.Single + +'\n ' Text +'// End of central directory\n' Comment.Single + +' ' Text +'$eof_cd' Name.Variable +' ' Text +'=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +'\n ' Text +'$eof_cd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'"' Literal.String.Double +'\\x50' Literal.String.Escape +'\\x4b' Literal.String.Escape +'\\x05' Literal.String.Escape +'\\x06' Literal.String.Escape +'"' Literal.String.Double +';' Punctuation +' ' Text +'// End of central dir signature\n' Comment.Single + +' ' Text +'$eof_cd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Number of this disk\n' Comment.Single + +' ' Text +'$eof_cd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// Number of the disk with the start of the central directory\n' Comment.Single + +' ' Text +'$eof_cd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'count' Name.Builtin +'(' Punctuation +'$cd_data' Name.Variable +'));' Punctuation +' ' Text +'// Total number of entries in the central directory on this disk\n' Comment.Single + +' ' Text +'$eof_cd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'count' Name.Builtin +'(' Punctuation +'$cd_data' Name.Variable +'));' Punctuation +' ' Text +'// Total number of entries in the central directory\n' Comment.Single + +' ' Text +'$eof_cd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$tmp_cd_data' Name.Variable +'));' Punctuation +' ' Text +'// Size of the central directory\n' Comment.Single + +' ' Text +'$eof_cd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'V' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$tmp_file_data' Name.Variable +'));' Punctuation +' ' Text +'// Offset of start of central directory with respect to the starting disk number\n' Comment.Single + +' ' Text +'$eof_cd' Name.Variable +' ' Text +'.=' Operator +' ' Text +'pack' Name.Builtin +'(' Punctuation +'"' Literal.String.Double +'v' Literal.String.Double +'"' Literal.String.Double +',' Punctuation +' ' Text +'0' Literal.Number.Integer +');' Punctuation +' ' Text +'// .ZIP file comment length\n' Comment.Single + +' ' Text +'$eof_cd' Name.Variable +' ' Text +'.=' Operator +' ' Text +"''" Literal.String.Single +';' Punctuation +' ' Text +'// .ZIP file comment (is empty)\n' Comment.Single + +'\n ' Text +'// Content of the zip file\n' Comment.Single + +' ' Text +'$data' Name.Variable +' ' Text +'=' Operator +' ' Text +'$tmp_file_data' Name.Variable +'.' Operator +'\n ' Text +'// $extra_data_record.\n' Comment.Single + +' ' Text +'$tmp_cd_data' Name.Variable +'.' Operator +'\n ' Text +'$eof_cd' Name.Variable +';' Punctuation +'\n\n ' Text +'// Return content?\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'!' Operator +'$filename' Name.Variable +')' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'$data' Name.Variable +';' Punctuation +'\n \n ' Text +'// Write to file\n' Comment.Single + +' ' Text +'return' Keyword +' ' Text +'file_put_contents' Name.Builtin +'(' Punctuation +'$filename' Name.Variable +',' Punctuation +' ' Text +'$data' Name.Variable +');' Punctuation +'\n ' Text +'}' Punctuation +'\n \n ' Text +"/**\n * Load a zip file\n *\n * This function loads the files and dirs from a zip file from the harddrive.\n *\n * @access public\n *\n * @param string $file The path to the zip file\n * @param bool $reset Reset the files and dirs before adding the zip file's content?\n *\n * @return bool Returns true if the file was loaded sucessfully\n */" Literal.String.Doc +'\n ' Text +'function' Keyword +' ' Text +'load_file' Name.Function +'(' Punctuation +'$file' Name.Variable +',' Punctuation +' ' Text +'$reset' Name.Variable +' ' Text +'=' Operator +' ' Text +'true' Keyword +')' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'// Check whether the file exists\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'!' Operator +'file_exists' Name.Builtin +'(' Punctuation +'$file' Name.Variable +'))' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'false' Keyword +';' Punctuation +'\n\n ' Text +'// Load the files content\n' Comment.Single + +' ' Text +'$content' Name.Variable +' ' Text +'=' Operator +' ' Text +'@' Operator +'file_get_contents' Name.Builtin +'(' Punctuation +'$file' Name.Variable +');' Punctuation +'\n\n ' Text +'// Return false if the file cannot be opened\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'!' Operator +'$content' Name.Variable +')' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'false' Keyword +';' Punctuation +'\n\n ' Text +'// Read the zip\n' Comment.Single + +' ' Text +'return' Keyword +' ' Text +'$this' Name.Variable +'->' Operator +'load_string' Name.Attribute +'(' Punctuation +'$content' Name.Variable +',' Punctuation +' ' Text +'$reset' Name.Variable +');' Punctuation +'\n ' Text +'}' Punctuation +'\n \n ' Text +"/**\n * Load a zip string\n *\n * This function loads the files and dirs from a string\n *\n * @access public\n *\n * @param string $string The string the zip is generated from\n * @param bool $reset Reset the files and dirs before adding the zip file's content?\n *\n * @return bool Returns true if the string was loaded sucessfully\n */" Literal.String.Doc +'\n ' Text +'function' Keyword +' ' Text +'load_string' Name.Function +'(' Punctuation +'$string' Name.Variable +',' Punctuation +' ' Text +'$reset' Name.Variable +' ' Text +'=' Operator +' ' Text +'true' Keyword +')' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'// Reset the zip?\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'$reset' Name.Variable +')' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'$this' Name.Variable +'->' Operator +'dirs' Name.Attribute +' ' Text +'=' Operator +' ' Text +'array' Keyword +'();' Punctuation +'\n ' Text +'$this' Name.Variable +'->' Operator +'files' Name.Attribute +' ' Text +'=' Operator +' ' Text +'array' Keyword +'();' Punctuation +'\n ' Text +'}' Punctuation +'\n\n ' Text +'// Get the starting position of the end of central directory record\n' Comment.Single + +' ' Text +'$start' Name.Variable +' ' Text +'=' Operator +' ' Text +'strpos' Name.Builtin +'(' Punctuation +'$string' Name.Variable +',' Punctuation +' ' Text +'"' Literal.String.Double +'\\x50' Literal.String.Escape +'\\x4b' Literal.String.Escape +'\\x05' Literal.String.Escape +'\\x06' Literal.String.Escape +'"' Literal.String.Double +');' Punctuation +'\n\n ' Text +'// Error\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'$start' Name.Variable +' ' Text +'===' Operator +' ' Text +'false' Keyword +')' Punctuation +'\n ' Text +'die' Keyword +'(' Punctuation +"'Could not find the end of central directory record'" Literal.String.Single +');' Punctuation +'\n\n ' Text +'// Get the ecdr\n' Comment.Single + +' ' Text +'$eof_cd' Name.Variable +' ' Text +'=' Operator +' ' Text +'substr' Name.Builtin +'(' Punctuation +'$string' Name.Variable +',' Punctuation +' ' Text +'$start' Name.Variable +'+' Operator +'4' Literal.Number.Integer +',' Punctuation +' ' Text +'18' Literal.Number.Integer +');' Punctuation +'\n\n ' Text +'// Unpack the ecdr infos\n' Comment.Single + +' ' Text +'$eof_cd' Name.Variable +' ' Text +'=' Operator +' ' Text +'unpack' Name.Builtin +'(' Punctuation +"'vdisc1/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vdisc2/'" Literal.String.Single +'.' Operator +'\n ' Text +"'ventries1/'" Literal.String.Single +'.' Operator +'\n ' Text +"'ventries2/'" Literal.String.Single +'.' Operator +'\n ' Text +"'Vsize/'" Literal.String.Single +'.' Operator +'\n ' Text +"'Voffset/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vcomment_lenght'" Literal.String.Single +',' Punctuation +' ' Text +'$eof_cd' Name.Variable +');' Punctuation +'\n\n ' Text +'// Do not allow multi disc zips\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'$eof_cd' Name.Variable +'[' Punctuation +"'disc1'" Literal.String.Single +']' Punctuation +' ' Text +'!=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'die' Keyword +'(' Punctuation +"'multi disk stuff is not yet implemented :/'" Literal.String.Single +');' Punctuation +'\n\n ' Text +'// Save the interesting values\n' Comment.Single + +' ' Text +'$cd_entries' Name.Variable +' ' Text +'=' Operator +' ' Text +'$eof_cd' Name.Variable +'[' Punctuation +"'entries1'" Literal.String.Single +'];' Punctuation +'\n ' Text +'$cd_size' Name.Variable +' ' Text +'=' Operator +' ' Text +'$eof_cd' Name.Variable +'[' Punctuation +"'size'" Literal.String.Single +'];' Punctuation +'\n ' Text +'$cd_offset' Name.Variable +' ' Text +'=' Operator +' ' Text +'$eof_cd' Name.Variable +'[' Punctuation +"'offset'" Literal.String.Single +'];' Punctuation +'\n\n ' Text +'// Get the central directory record\n' Comment.Single + +' ' Text +'$cdr' Name.Variable +' ' Text +'=' Operator +' ' Text +'substr' Name.Builtin +'(' Punctuation +'$string' Name.Variable +',' Punctuation +' ' Text +'$cd_offset' Name.Variable +',' Punctuation +' ' Text +'$cd_size' Name.Variable +');' Punctuation +'\n\n ' Text +'// Reset the position and the list of the entries\n' Comment.Single + +' ' Text +'$pos' Name.Variable +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n ' Text +'$entries' Name.Variable +' ' Text +'=' Operator +' ' Text +'array' Keyword +'();' Punctuation +'\n\n ' Text +'// Handle cdr\n' Comment.Single + +' ' Text +'while' Keyword +'(' Punctuation +'$pos' Name.Variable +' ' Text +'<' Operator +' ' Text +'strlen' Name.Builtin +'(' Punctuation +'$cdr' Name.Variable +'))' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'// Check header signature\n' Comment.Single + +' ' Text +'// Digital signature\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'substr' Name.Builtin +'(' Punctuation +'$cdr' Name.Variable +',' Punctuation +' ' Text +'$pos' Name.Variable +',' Punctuation +' ' Text +'4' Literal.Number.Integer +')' Punctuation +' ' Text +'==' Operator +' ' Text +'"' Literal.String.Double +'\\x50' Literal.String.Escape +'\\x4b' Literal.String.Escape +'\\x05' Literal.String.Escape +'\\x05' Literal.String.Escape +'"' Literal.String.Double +')' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'// Get digital signature size\n' Comment.Single + +' ' Text +'$tmp_info' Name.Variable +' ' Text +'=' Operator +' ' Text +'unpack' Name.Builtin +'(' Punctuation +"'vsize'" Literal.String.Single +',' Punctuation +' ' Text +'substr' Name.Builtin +'(' Punctuation +'$cdr' Name.Variable +',' Punctuation +' ' Text +'$pos' Name.Variable +' ' Text +'+' Operator +' ' Text +'4' Literal.Number.Integer +',' Punctuation +' ' Text +'2' Literal.Number.Integer +'));' Punctuation +'\n\n ' Text +'// Read out the digital signature\n' Comment.Single + +' ' Text +'$digital_sig' Name.Variable +' ' Text +'=' Operator +' ' Text +'substr' Name.Builtin +'(' Punctuation +'$header' Name.Variable +',' Punctuation +' ' Text +'$pos' Name.Variable +' ' Text +'+' Operator +' ' Text +'6' Literal.Number.Integer +',' Punctuation +' ' Text +'$tmp_info' Name.Variable +'[' Punctuation +"'size'" Literal.String.Single +']);' Punctuation +'\n\n ' Text +'break' Keyword +';' Punctuation +'\n ' Text +'}' Punctuation +'\n\n ' Text +'// Get file header\n' Comment.Single + +' ' Text +'$header' Name.Variable +' ' Text +'=' Operator +' ' Text +'substr' Name.Builtin +'(' Punctuation +'$cdr' Name.Variable +',' Punctuation +' ' Text +'$pos' Name.Variable +',' Punctuation +' ' Text +'46' Literal.Number.Integer +');' Punctuation +'\n\n ' Text +'// Unpack the header information\n' Comment.Single + +' ' Text +'$header_info' Name.Variable +' ' Text +'=' Operator +' ' Text +'@' Operator +'unpack' Name.Builtin +'(' Punctuation +"'Vheader/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vversion_made_by/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vversion_needed/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vgeneral_purpose/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vcompression_method/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vlast_mod_time/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vlast_mod_date/'" Literal.String.Single +'.' Operator +'\n ' Text +"'Vcrc32/'" Literal.String.Single +'.' Operator +'\n ' Text +"'Vcompressed_size/'" Literal.String.Single +'.' Operator +'\n ' Text +"'Vuncompressed_size/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vname_length/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vextra_length/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vcomment_length/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vdisk_number/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vinternal_attributes/'" Literal.String.Single +'.' Operator +'\n ' Text +"'Vexternal_attributes/'" Literal.String.Single +'.' Operator +'\n ' Text +"'Voffset'" Literal.String.Single +',' Punctuation +'\n ' Text +'$header' Name.Variable +');' Punctuation +'\n\n ' Text +'// Valid header?\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'$header_info' Name.Variable +'[' Punctuation +"'header'" Literal.String.Single +']' Punctuation +' ' Text +'!=' Operator +' ' Text +'33639248' Literal.Number.Integer +')' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'false' Keyword +';' Punctuation +'\n\n ' Text +'// New position\n' Comment.Single + +' ' Text +'$pos' Name.Variable +' ' Text +'+=' Operator +' ' Text +'46' Literal.Number.Integer +';' Punctuation +'\n\n ' Text +'// Read out the file name\n' Comment.Single + +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'name'" Literal.String.Single +']' Punctuation +' ' Text +'=' Operator +' ' Text +'substr' Name.Builtin +'(' Punctuation +'$cdr' Name.Variable +',' Punctuation +' ' Text +'$pos' Name.Variable +',' Punctuation +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'name_length'" Literal.String.Single +']);' Punctuation +'\n\n ' Text +'// New position\n' Comment.Single + +' ' Text +'$pos' Name.Variable +' ' Text +'+=' Operator +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'name_length'" Literal.String.Single +'];' Punctuation +'\n\n ' Text +'// Read out the extra stuff\n' Comment.Single + +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'extra'" Literal.String.Single +']' Punctuation +' ' Text +'=' Operator +' ' Text +'substr' Name.Builtin +'(' Punctuation +'$cdr' Name.Variable +',' Punctuation +' ' Text +'$pos' Name.Variable +',' Punctuation +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'extra_length'" Literal.String.Single +']);' Punctuation +'\n\n ' Text +'// New position\n' Comment.Single + +' ' Text +'$pos' Name.Variable +' ' Text +'+=' Operator +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'extra_length'" Literal.String.Single +'];' Punctuation +'\n\n ' Text +'// Read out the comment\n' Comment.Single + +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'comment'" Literal.String.Single +']' Punctuation +' ' Text +'=' Operator +' ' Text +'substr' Name.Builtin +'(' Punctuation +'$cdr' Name.Variable +',' Punctuation +' ' Text +'$pos' Name.Variable +',' Punctuation +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'comment_length'" Literal.String.Single +']);' Punctuation +'\n\n ' Text +'// New position\n' Comment.Single + +' ' Text +'$pos' Name.Variable +' ' Text +'+=' Operator +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'comment_length'" Literal.String.Single +'];' Punctuation +'\n\n ' Text +'// Append this file/dir to the entry list\n' Comment.Single + +' ' Text +'$entries' Name.Variable +'[]' Punctuation +' ' Text +'=' Operator +' ' Text +'$header_info' Name.Variable +';' Punctuation +'\n ' Text +'}' Punctuation +'\n\n ' Text +'// Check whether all entries where read sucessfully\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'count' Name.Builtin +'(' Punctuation +'$entries' Name.Variable +')' Punctuation +' ' Text +'!=' Operator +' ' Text +'$cd_entries' Name.Variable +')' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'false' Keyword +';' Punctuation +'\n\n ' Text +'// Handle files/dirs\n' Comment.Single + +' ' Text +'foreach' Keyword +'(' Punctuation +'$entries' Name.Variable +' ' Text +'as' Keyword +' ' Text +'$entry' Name.Variable +')' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'// Is a dir?\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'$entry' Name.Variable +'[' Punctuation +"'external_attributes'" Literal.String.Single +']' Punctuation +' ' Text +'&' Operator +' ' Text +'16' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'$this' Name.Variable +'->' Operator +'add_dir' Name.Attribute +'(' Punctuation +'$entry' Name.Variable +'[' Punctuation +"'name'" Literal.String.Single +']);' Punctuation +'\n ' Text +'continue' Keyword +';' Punctuation +'\n ' Text +'}' Punctuation +'\n\n ' Text +'// Get local file header\n' Comment.Single + +' ' Text +'$header' Name.Variable +' ' Text +'=' Operator +' ' Text +'substr' Name.Builtin +'(' Punctuation +'$string' Name.Variable +',' Punctuation +' ' Text +'$entry' Name.Variable +'[' Punctuation +"'offset'" Literal.String.Single +'],' Punctuation +' ' Text +'30' Literal.Number.Integer +');' Punctuation +'\n\n ' Text +'// Unpack the header information\n' Comment.Single + +' ' Text +'$header_info' Name.Variable +' ' Text +'=' Operator +' ' Text +'@' Operator +'unpack' Name.Builtin +'(' Punctuation +"'Vheader/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vversion_needed/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vgeneral_purpose/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vcompression_method/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vlast_mod_time/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vlast_mod_date/'" Literal.String.Single +'.' Operator +'\n ' Text +"'Vcrc32/'" Literal.String.Single +'.' Operator +'\n ' Text +"'Vcompressed_size/'" Literal.String.Single +'.' Operator +'\n ' Text +"'Vuncompressed_size/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vname_length/'" Literal.String.Single +'.' Operator +'\n ' Text +"'vextra_length'" Literal.String.Single +',' Punctuation +'\n ' Text +'$header' Name.Variable +');' Punctuation +'\n\n ' Text +'// Valid header?\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'$header_info' Name.Variable +'[' Punctuation +"'header'" Literal.String.Single +']' Punctuation +' ' Text +'!=' Operator +' ' Text +'67324752' Literal.Number.Integer +')' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'false' Keyword +';' Punctuation +'\n\n ' Text +'// Get content start position\n' Comment.Single + +' ' Text +'$start' Name.Variable +' ' Text +'=' Operator +' ' Text +'$entry' Name.Variable +'[' Punctuation +"'offset'" Literal.String.Single +']' Punctuation +' ' Text +'+' Operator +' ' Text +'30' Literal.Number.Integer +' ' Text +'+' Operator +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'name_length'" Literal.String.Single +']' Punctuation +' ' Text +'+' Operator +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'extra_length'" Literal.String.Single +'];' Punctuation +'\n\n ' Text +'// Get the compressed data\n' Comment.Single + +' ' Text +'$data' Name.Variable +' ' Text +'=' Operator +' ' Text +'substr' Name.Builtin +'(' Punctuation +'$string' Name.Variable +',' Punctuation +' ' Text +'$start' Name.Variable +',' Punctuation +' ' Text +'$header_info' Name.Variable +'[' Punctuation +"'compressed_size'" Literal.String.Single +']);' Punctuation +'\n\n ' Text +'// Detect compression type\n' Comment.Single + +' ' Text +'switch' Keyword +'(' Punctuation +'$header_info' Name.Variable +'[' Punctuation +"'compression_method'" Literal.String.Single +'])' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'// No compression\n' Comment.Single + +' ' Text +'case' Keyword +' ' Text +'0' Literal.Number.Integer +':' Operator +'\n ' Text +'// Ne decompression needed\n' Comment.Single + +' ' Text +'$content' Name.Variable +' ' Text +'=' Operator +' ' Text +'$data' Name.Variable +';' Punctuation +'\n ' Text +'break' Keyword +';' Punctuation +'\n\n ' Text +'// Gzip\n' Comment.Single + +' ' Text +'case' Keyword +' ' Text +'8' Literal.Number.Integer +':' Operator +'\n ' Text +'if' Keyword +'(' Punctuation +'!' Operator +'function_exists' Name.Builtin +'(' Punctuation +"'gzinflate'" Literal.String.Single +'))' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'false' Keyword +';' Punctuation +'\n\n ' Text +'// Uncompress data\n' Comment.Single + +' ' Text +'$content' Name.Variable +' ' Text +'=' Operator +' ' Text +'gzinflate' Name.Builtin +'(' Punctuation +'$data' Name.Variable +');' Punctuation +'\n ' Text +'break' Keyword +';' Punctuation +'\n\n ' Text +'// Bzip2\n' Comment.Single + +' ' Text +'case' Keyword +' ' Text +'12' Literal.Number.Integer +':' Operator +'\n ' Text +'if' Keyword +'(' Punctuation +'!' Operator +'function_exists' Name.Builtin +'(' Punctuation +"'bzdecompress'" Literal.String.Single +'))' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'false' Keyword +';' Punctuation +'\n\n ' Text +'// Decompress data\n' Comment.Single + +' ' Text +'$content' Name.Variable +' ' Text +'=' Operator +' ' Text +'bzdecompress' Name.Builtin +'(' Punctuation +'$data' Name.Variable +');' Punctuation +'\n ' Text +'break' Keyword +';' Punctuation +'\n\n ' Text +'// Compression not supported -> error\n' Comment.Single + +' ' Text +'default' Keyword +':' Operator +'\n ' Text +'return' Keyword +' ' Text +'false' Keyword +';' Punctuation +'\n ' Text +'}' Punctuation +'\n\n ' Text +'// Try to add file\n' Comment.Single + +' ' Text +'if' Keyword +'(' Punctuation +'!' Operator +'$this' Name.Variable +'->' Operator +'add_file' Name.Attribute +'(' Punctuation +'$entry' Name.Variable +'[' Punctuation +"'name'" Literal.String.Single +'],' Punctuation +' ' Text +'$content' Name.Variable +'))' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'false' Keyword +';' Punctuation +'\n ' Text +'}' Punctuation +'\n\n ' Text +'return' Keyword +' ' Text +'true' Keyword +';' Punctuation +'\n ' Text +'}' Punctuation +'\n' Text + +'}' Punctuation +'\n\n' Text + +'function' Keyword +' ' Text +'&' Operator +'byref' Name.Function +'()' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'$x' Name.Variable +' ' Text +'=' Operator +' ' Text +'array' Keyword +'();' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'$x' Name.Variable +';' Punctuation +'\n' Text + +'}' Punctuation +'\n\n' Text + +'// Test highlighting of magic methods and variables\n' Comment.Single + +'class' Keyword +' ' Text +'MagicClass' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'public' Keyword +' ' Text +'$magic_str' Name.Variable +';' Punctuation +'\n ' Text +'public' Keyword +' ' Text +'$ordinary_str' Name.Variable +';' Punctuation +'\n\n ' Text +'public' Keyword +' ' Text +'function' Keyword +' ' Text +'__construct' Name.Function.Magic +'(' Punctuation +'$some_var' Name.Variable +')' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'$this' Name.Variable +'->' Operator +'magic_str' Name.Attribute +' ' Text +'=' Operator +' ' Text +'__FILE__' Name.Constant +';' Punctuation +'\n ' Text +'$this' Name.Variable +'->' Operator +'ordinary_str' Name.Attribute +' ' Text +'=' Operator +' ' Text +'$some_var' Name.Variable +';' Punctuation +'\n ' Text +'}' Punctuation +'\n\n ' Text +'public' Keyword +' ' Text +'function' Keyword +' ' Text +'__toString' Name.Function.Magic +'()' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'$this' Name.Variable +'->' Operator +'magic_str' Name.Attribute +';' Punctuation +'\n ' Text +'}' Punctuation +'\n\n ' Text +'public' Keyword +' ' Text +'function' Keyword +' ' Text +'nonMagic' Name.Function +'()' Punctuation +' ' Text +'{' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'$this' Name.Variable +'->' Operator +'ordinary_str' Name.Attribute +';' Punctuation +'\n ' Text +'}' Punctuation +'\n' Text + +'}' Punctuation +'\n\n' Text + +'$magic' Name.Variable +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'MagicClass' Name.Other +'(' Punctuation +'__DIR__' Name.Constant +');' Punctuation +'\n' Text + +'__toString' Name.Other +'();' Punctuation +'\n' Text + +'$magic' Name.Variable +'->' Operator +'nonMagic' Name.Attribute +'();' Punctuation +'\n' Text + +'$magic' Name.Variable +'->' Operator +'__toString' Name.Attribute +'();' Punctuation +'\n\n ' Text +'echo' Keyword +' ' Text +'<<<' Literal.String +'EOF' Literal.String.Delimiter +'\n\n Test the heredocs...\n\n ' Literal.String +'EOF' Literal.String.Delimiter +';' Punctuation +'\n' Text + +'\n' Text + +'echo' Keyword +' ' Text +'<<<' Literal.String +'"' Literal.String +'some_delimiter' Literal.String.Delimiter +'"\nmore heredoc testing\ncontinues on this line\n' Literal.String + +'some_delimiter' Literal.String.Delimiter +';' Punctuation +'\n' Text + +'\n' Text + +'?>' Comment.Preproc +'\n' Other |
