<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Phar->setStub</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->setMetaData" HREF="function.phar-setmetadata.html"><LINK REL="NEXT" TITLE="Phar->startBuffering" HREF="function.phar-startbuffering.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-setmetadata.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.phar-startbuffering.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.phar-setstub" ></A >Phar->setStub</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN179491" ></A ><P > (no version information, might be only in CVS)</P >Phar->setStub -- Used to set the PHP loader or bootstrap stub of a Phar archive</DIV ><DIV CLASS="refsect1" ><A NAME="AEN179494" ></A ><H2 >说明</H2 >void <B CLASS="methodname" >Phar->setStub</B > ( string stub )<BR ></BR ><P > This method is used to add a PHP bootstrap loader stub to a new Phar archive, or to replace the loader stub in an existing Phar archive. </P ><P > The loader stub for a Phar archive is used whenever an archive is included directly as in this example: </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /></font><font color="#007700">include </font><font color="#DD0000">'myphar.phar'</font><font color="#007700">;<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P > The loader is not accessed when including a file through the <TT CLASS="literal" >phar</TT > stream wrapper like so: </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /></font><font color="#007700">include </font><font color="#DD0000">'phar://myphar.phar/somefile.php'</font><font color="#007700">;<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN179508" ></A ><H2 >错误/异常</H2 ><P > <B CLASS="classname" >UnexpectedValueException</B > is thrown if <A HREF="ref.phar.html#ini.phar.readonly" >phar.readonly</A > is enabled in php.ini. <B CLASS="classname" >PharException</B > is thrown if any problems are encountered flushing changes to disk. </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN179514" ></A ><H2 >范例</H2 ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN179517" ></A ><P ><B >例 1. A <B CLASS="function" >Phar->setStub()</B > example</B ></P ><P > </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br />try </font><font color="#007700">{<br /> </font><font color="#0000BB">$p </font><font color="#007700">= new </font><font color="#0000BB">Phar</font><font color="#007700">(</font><font color="#0000BB">dirname</font><font color="#007700">(</font><font color="#0000BB">__FILE__</font><font color="#007700">) . </font><font color="#DD0000">'/brandnewphar.phar'</font><font color="#007700">, </font><font color="#0000BB">0</font><font color="#007700">, </font><font color="#DD0000">'brandnewphar.phar'</font><font color="#007700">);<br /> </font><font color="#0000BB">$p</font><font color="#007700">[</font><font color="#DD0000">'a.php'</font><font color="#007700">] = </font><font color="#DD0000">'<?php var_dump("Hello");'</font><font color="#007700">;<br /> </font><font color="#0000BB">$p</font><font color="#007700">-></font><font color="#0000BB">setStub</font><font color="#007700">(</font><font color="#DD0000">'<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>'</font><font color="#007700">);<br /> include </font><font color="#DD0000">'phar://brandnewphar.phar/a.php'</font><font color="#007700">;<br /> </font><font color="#0000BB">var_dump</font><font color="#007700">(</font><font color="#0000BB">$p</font><font color="#007700">-></font><font color="#0000BB">getStub</font><font color="#007700">());<br /> </font><font color="#0000BB">$p</font><font color="#007700">[</font><font color="#DD0000">'b.php'</font><font color="#007700">] = </font><font color="#DD0000">'<?php var_dump("World");'</font><font color="#007700">;<br /> </font><font color="#0000BB">$p</font><font color="#007700">-></font><font color="#0000BB">setStub</font><font color="#007700">(</font><font color="#DD0000">'<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>'</font><font color="#007700">);<br /> include </font><font color="#DD0000">'phar://brandnewphar.phar/b.php'</font><font color="#007700">;<br /> </font><font color="#0000BB">var_dump</font><font color="#007700">(</font><font color="#0000BB">$p</font><font color="#007700">-></font><font color="#0000BB">getStub</font><font color="#007700">());<br />} </font><font color="#0000BB">catch </font><font color="#007700">(</font><font color="#0000BB">Exception $e</font><font color="#007700">) {<br /> echo </font><font color="#DD0000">'Write operations failed on brandnewphar.phar: '</font><font color="#007700">, </font><font color="#0000BB">$e</font><font color="#007700">;<br />}<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P >上例将输出:</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="screen" >string(5) "Hello" string(82) "<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>" string(5) "World" string(83) "<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"</PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN179524" ></A ><H2 >参见</H2 ><P > <P ></P ><TABLE BORDER="0" ><TBODY ><TR ><TD ><A HREF="function.phar-getstub.html" ><B CLASS="function" >Phar->getStub()</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-setmetadata.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-startbuffering.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Phar->setMetaData</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->startBuffering</TD ></TR ></TABLE ></DIV ></BODY ></HTML >