1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- splitted from ./en/functions/exec.xml, last change in rev 1.2 -->
<refentry xml:id="function.passthru" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>passthru</refname>
<refpurpose>Execute an external program and display raw output</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>false</type><type>null</type></type><methodname>passthru</methodname>
<methodparam><type>string</type><parameter>command</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter role="reference">result_code</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
The <function>passthru</function> function is similar to the
<function>exec</function> function in that it executes a
<parameter>command</parameter>. This function
should be used in place of <function>exec</function> or
<function>system</function> when the output from the Unix command
is binary data which needs to be passed directly back to the
browser. A common use for this is to execute something like the
pbmplus utilities that can output an image stream directly. By
setting the Content-type to <literal>image/gif</literal> and
then calling a pbmplus program to output a gif, you can create
PHP scripts that output images directly.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>command</parameter></term>
<listitem>
<para>
The command that will be executed.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>result_code</parameter></term>
<listitem>
<para>
If the <parameter>result_code</parameter> argument is present, the
return status of the Unix command will be placed here.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.nullorfalse;
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Will emit an <constant>E_WARNING</constant> if <function>passthru</function>
is unable to execute the <parameter>command</parameter>.
</para>
<para>
Throws a <classname>ValueError</classname> if <parameter>command</parameter>
is empty or contains null bytes.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
If <parameter>command</parameter> is empty or contains null bytes,
<function>passthru</function> now throws a <classname>ValueError</classname>.
Previously it emitted an <constant>E_WARNING</constant> and returned &false;.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&warn.escapeshell;
¬e.exec-bg;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>exec</function></member>
<member><function>system</function></member>
<member><function>popen</function></member>
<member><function>escapeshellcmd</function></member>
<member><link linkend="language.operators.execution">backtick operator</link></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|