-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathpassthru.xml
145 lines (138 loc) · 4.59 KB
/
passthru.xml
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
139
140
141
142
143
144
145
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b412bbd26214f7281ac7dd858710e09952a275f2 Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,mumumu -->
<!-- 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>外部プログラムを実行し、未整形の出力を表示する</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>
<function>passthru</function>関数は<function>exec</function>関数と同様、
<parameter>command</parameter>を実行します。
引数 <parameter>return_code</parameter> を指定した場合、
Unix コマンドのステータスで置換されます。
この関数は Unix コマンドからの出力がバイナリデータであり、
ブラウザーへ直接返す必要がある場合、<function>exec</function>
もしくは<function>system</function>の代わりに使用する必要があります。
よく使うのは、直接画像ストリームを出力することができる pbmplus
ユーティリティの様なものを実行する場合です。content-type を
<literal>image/gif</literal> に設定して、gifを出力するpbmplus
プログラムを呼び出すことにより、直接画像を出力する PHP スクリプトを作成
することができます。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>command</parameter></term>
<listitem>
<para>
実行するコマンド
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>result_code</parameter></term>
<listitem>
<para>
引数<parameter>result_code</parameter>が存在する場合、
Unix コマンドのステータスがこの変数に書かれます。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.nullorfalse;
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
<function>passthru</function>
が <parameter>command</parameter>
を実行できない場合、<constant>E_WARNING</constant> が発生します。
</para>
<para>
<parameter>command</parameter>
が空だったり、null バイトが含まれている場合、
<classname>ValueError</classname> がスローされます。
</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>
<parameter>command</parameter>
が空だったり、null バイトが含まれている場合、
<classname>ValueError</classname> がスローされるようになりました。
これより前のバージョンでは、
<constant>E_WARNING</constant> が発生し、&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">バッククォート演算子</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
-->