📄 phar.fileformat.phar.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <title>Phar File Format</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body><div style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="phar.fileformat.zip.html">Zip-based phars</a></div> <div class="next" style="text-align: right; float: right;"><a href="phar.fileformat.flags.html">Global Phar bitmapped flags</a></div> <div class="up"><a href="phar.fileformat.html">What makes a phar a phar and not a tar or a zip?</a></div> <div class="home"><a href="index.html">PHP Manual</a></div></div><hr /><div id="phar.fileformat.phar" class="section"> <h2 class="title">Phar File Format</h2> <p class="para"> The phar file format is literally laid out as stub/manifest/contents/signature, and stores the crucial information of what is included in the phar archive in its <i>manifest</i>. </p> <p class="para"> The Phar manifest is a highly optimized format that allows per-file specification of file compression, file permissions, and even user-defined meta-data such as file user or group. All values greater than 1 byte are stored in little-endian byte order, with the exception of the API version, which for historical reasons is stored as 3 nibbles in big-endian order. </p> <p class="para"> All unused flags are reserved for future use, and must not be used to store custom information. Use the per-file meta-data facility to store customized information about particular files. </p> <p class="para"> The basic file format of a Phar archive manifest is as follows: </p> <p class="para"> <table border="5"> <caption><b>Global Phar manifest format</b></caption> <colgroup> <thead valign="middle"> <tr valign="middle"> <th colspan="1">Size in bytes</th> <th colspan="1">Description</th> </tr> </thead> <tbody valign="middle" class="tbody"> <tr valign="middle"> <td colspan="1" rowspan="1" align="left">4 bytes</td> <td colspan="1" rowspan="1" align="left">Length of manifest in bytes (1 MB limit)</td> </tr> <tr valign="middle"> <td colspan="1" rowspan="1" align="left">4 bytes</td> <td colspan="1" rowspan="1" align="left">Number of files in the Phar</td> </tr> <tr valign="middle"> <td colspan="1" rowspan="1" align="left">2 bytes</td> <td colspan="1" rowspan="1" align="left">API version of the Phar manifest (currently 1.0.0)</td> </tr> <tr valign="middle"> <td colspan="1" rowspan="1" align="left">4 bytes</td> <td colspan="1" rowspan="1" align="left">Global Phar bitmapped flags</td> </tr> <tr valign="middle"> <td colspan="1" rowspan="1" align="left">4 bytes</td> <td colspan="1" rowspan="1" align="left">Length of Phar alias</td> </tr> <tr valign="middle"> <td colspan="1" rowspan="1" align="left">??</td> <td colspan="1" rowspan="1" align="left">Phar alias (length based on previous)</td> </tr> <tr valign="middle"> <td colspan="1" rowspan="1" align="left">4 bytes</td> <td colspan="1" rowspan="1" align="left">Length of Phar metadata (<i>0</i> for none)</td> </tr> <tr valign="middle"> <td colspan="1" rowspan="1" align="left">??</td> <td colspan="1" rowspan="1" align="left">Serialized Phar Meta-data, stored in <a href="function.serialize.html" class="function">serialize()</a> format</td> </tr> <tr valign="middle"> <td colspan="1" rowspan="1" align="left">at least 24 * number of entries bytes</td> <td colspan="1" rowspan="1" align="left">entries for each file</td> </tr> </tbody> </colgroup> </table> </p></div><hr /><div style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="phar.fileformat.zip.html">Zip-based phars</a></div> <div class="next" style="text-align: right; float: right;"><a href="phar.fileformat.flags.html">Global Phar bitmapped flags</a></div> <div class="up"><a href="phar.fileformat.html">What makes a phar a phar and not a tar or a zip?</a></div> <div class="home"><a href="index.html">PHP Manual</a></div></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -