<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Phar->getStub</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="Phar archive stream and classes" HREF="ref.phar.html"><LINK REL="PREVIOUS" TITLE="Phar->getSignature" HREF="function.phar-getsignature.html"><LINK REL="NEXT" TITLE="Phar->getVersion" HREF="function.phar-getversion.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.phar-getsignature.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.phar-getversion.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.phar-getstub" ></A >Phar->getStub</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN179022" ></A ><P > (no version information, might be only in CVS)</P >Phar->getStub -- Return the PHP loader or bootstrap stub of a Phar archive</DIV ><DIV CLASS="refsect1" ><A NAME="AEN179025" ></A ><H2 >说明</H2 >string <B CLASS="methodname" >Phar->getStub</B > ( void )<BR ></BR ><P > One of the features that differentiates a Phar archive from other familiar archive formats like tar or zip is that a Phar archive is explicitly designed to be included to allow distributing an application or library that can be run without extraction directly from the archive. In order to accomplish this, Phar archives contain a bootstrap loader, or <TT CLASS="literal" >stub</TT > written in PHP that can perform any action. </P ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" BORDER="1" WIDTH="100%" ><TR ><TD ALIGN="CENTER" ><B >警告</B ></TD ></TR ><TR ><TD ALIGN="LEFT" ><P >All stubs must end with <TT CLASS="literal" >__HALT_COMPILER();</TT > or the file is not a valid Phar archive.</P ></TD ></TR ></TABLE ></DIV ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN179036" ></A ><H2 >返回值</H2 ><P > Returns a string containing the contents of the bootstrap loader (stub) of the current Phar archive. </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN179039" ></A ><H2 >错误/异常</H2 ><P > Throws <B CLASS="classname" >RuntimeException</B > if it is not possible to read the stub from the Phar archive. </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN179043" ></A ><H2 >范例</H2 ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN179046" ></A ><P ><B >例 1. A <B CLASS="function" >Phar->getStub()</B > example</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> $p = new Phar('/path/to/my.phar', 0, 'my.phar');<br />echo $p->getStub();<br />echo "==NEXT==\n";<br />$p->setStub("<font color="#0000BB"><?php<br /></font><font color="#007700">function </font><font color="#0000BB">__autoload</font><font color="#007700">(</font><font color="#0000BB">$class</font><font color="#007700">)<br />{<br /> include </font><font color="#DD0000">'phar://' </font><font color="#007700">. </font><font color="#0000BB">str_replace</font><font color="#007700">(</font><font color="#DD0000">'_'</font><font color="#007700">, </font><font color="#DD0000">'/'</font><font color="#007700">, </font><font color="#0000BB">$class</font><font color="#007700">);<br />}<br /></font><font color="#0000BB">Phar</font><font color="#007700">::</font><font color="#0000BB">mapPhar</font><font color="#007700">(</font><font color="#DD0000">'myphar.phar'</font><font color="#007700">);<br />include </font><font color="#DD0000">'phar://myphar.phar/startup.php'</font><font color="#007700">;<br /></font><font color="#0000BB">__HALT_COMPILER</font><font color="#007700">();</font><font color="#DD0000">");<br />echo $p</font><font color="#007700">-></font><font color="#DD0000">getStub();</font> </font> </code></TD ></TR ></TABLE ><P >上例将输出:</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="screen" ><?php __HALT_COMPILER(); ==NEXT== <?php function __autoload($class) { include 'phar://' . str_replace('_', '/', $class); } Phar::mapPhar('myphar.phar'); include 'phar://myphar.phar/startup.php'; __HALT_COMPILER();</PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN179052" ></A ><H2 >参见</H2 ><P > <P ></P ><TABLE BORDER="0" ><TBODY ><TR ><TD ><A HREF="function.phar-setstub.html" ><B CLASS="function" >Phar->setStub()</B ></A ></TD ></TR ></TBODY ></TABLE ><P ></P > </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.phar-getsignature.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.phar-getversion.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Phar->getSignature</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.phar.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Phar->getVersion</TD ></TR ></TABLE ></DIV ></BODY ></HTML >