File: exec.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (205 lines) | stat: -rwxr-xr-x 8,448 bytes parent folder | download
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
<?xml version="1.0" encoding="iso-8859-1"?>
 <reference id="ref.exec">
  <title>Funciones de ejecuci&oacute;n de programas</title>
  <titleabbrev>Ejecuci&oacute;n de programas</titleabbrev>

  <refentry id="function.escapeshellcmd">
   <refnamediv>
    <refname>escapeshellcmd</refname>
    <refpurpose>enmascara los metacaracteres del int&eacute;rprete de ordenes
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descripci&oacute;n</title>
     <methodsynopsis>
     <type>string</type><methodname>escapeshellcmd</methodname>
     <methodparam><type>string</type><parameter>command</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>EscapeShellCmd</function> enmascara cualquier car&aacute;cter en una
     cadena de caracteres que pueda usarse para introducir fraudulentamente
     una orden al int&eacute;rprete de &oacute;rdenes para que &eacute;ste ejecute instrucciones
     arbitrarias. Esta funci&oacute;n se deber&iacute;a usar para asegurarse que
     cualquier dato que venga del usuario se enmascare antes de que &eacute;ste se le
     pase a las funciones <function>exec</function> o
     <function>system</function>, o al <link
     linkend="language.operators.execution">operador ` (ap&oacute;strofe invertido)
     </link>. Un uso habitual podr&iacute;a ser:</para>
    <para>
     <informalexample>
      <programlisting>
system(EscapeShellCmd($cmd))
      </programlisting>
     </informalexample>
	</para>

	<para>
	 V&eacute;ase tambi&eacute;n <function>exec</function>, <function>popen</function>,
	 <function>system</function>, y el <link
	 linkend="language.operators.execution">operador ` (ap&oacute;strofe
         invertido)</link>.
	</para>

   </refsect1>
  </refentry>

  <refentry id="function.exec">
   <refnamediv>
    <refname>exec</refname>
    <refpurpose>Ejecuta un programa externo</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descripci&oacute;n</title>
     <methodsynopsis>
     <type>string</type><methodname>exec</methodname>
     <methodparam><type>string</type><parameter>command</parameter></methodparam>
     <methodparam choice="opt"><type>string</type><parameter>array</parameter></methodparam>
     <methodparam choice="opt"><type>int</type><parameter>return_var</parameter></methodparam>
     </methodsynopsis>

    <para>
    <function>exec</function> ejecuta la orden indicada en
    <parameter>command</parameter>, sin embargo no produce ninguna
    salida. Simplemente devuelve la &uacute;ltima l&iacute;nea de la salida resultado
    de la orden.  Si necesita ejecutar una orden y obtener directamente
    todos los datos devueltos por la orden sin ninguna interferencia,
    use la funci&oacute;n <function>PassThru</function>.
    </para>
    <para>
    Si el par&aacute;metro <parameter>array</parameter> existe, entonces el
    array especificado se rellenar&aacute; con cada una de las l&iacute;neas de la
    salida producida por la orden. Notar que si el array ya contiene
    algunos elementos, <function>exec</function> los a&ntilde;adir&aacute; al final del
    array. Si no quiere que la funci&oacute;n a&ntilde;ada dichos elementos, haga un
    <function>unset</function> sobre el array antes de pas&aacute;rselo a
    <function>exec</function>.</para>
    <para>
    Si el par&aacute;metro <parameter>return_var</parameter> existe a la vez
    que el par&aacute;metro <parameter>array</parameter>, entonces el valor de
    retorno de la orden ejecutada se guardar&aacute; en dicha variable.
    </para>
    <para>
    Destacar que si usted va a permitir que se pasen datos provenientes
    de usuarios a esta funci&oacute;n, entonces deber&iacute;a usar
    <function>EscapeShellCmd</function> para asegurarse de que los
    usuarios no pueden enga&ntilde;ar al sistema para ejecutar instrucciones
    arbitrarias.
    </para>

    <para>
	 V&eacute;ase tambi&eacute;n <function>system</function>,
	 <function>PassThru</function>, <function>popen</function>,
	 <function>EscapeShellCmd</function>, y el <link
	 linkend="language.operators.execution">operador ` (ap&oacute;strofe
         invertido)</link>.
	</para>
   </refsect1>
  </refentry>

  <refentry id="function.passthru">
   <refnamediv>
    <refname>passthru</refname>
    <refpurpose>Ejecuta un programa externo y muestra su salida literal
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descripci&oacute;n</title>
     <methodsynopsis>
     <type>string</type><methodname>passthru</methodname>
     <methodparam><type>string</type><parameter>command</parameter></methodparam>
     <methodparam choice="opt"><type>int</type><parameter>return_var</parameter></methodparam>
     </methodsynopsis>
    <para>
     La funci&oacute;n <function>passthru</function> es similar a la funci&oacute;n
     <function>exec</function> en que ejecuta una orden
     (<parameter>command</parameter>). Si existe el par&aacute;metro
     <parameter>return_var</parameter>, el valor de estado devuelto por
     la orden Unix se guardar&aacute; ah&iacute;. Esta funci&oacute;n deber&iacute;a usarse en lugar
     de <function>exec</function> o <function>system</function> cuando
     la salida de la orden Unix sean datos binarios que deban ser
     pasados directamente al navegador. Un uso t&iacute;pico de ello es
     ejecutar algo como las utilidades pbmplus las cuales pueden dar como
     resultado directamente el flujo de datos de una imagen. Poniendo
     el content-type a <emphasis>image/gif</emphasis> y llamando
     al programa pbmplus para mostrar un gif, usted puede crear
     archivos de &oacute;rdenes PHP que generen directamente im&aacute;genes.</para>
     <para>
	 V&eacute;ase tambi&eacute;n <function>exec</function>,
	 <function>system</function>, <function>popen</function>,
	 <function>EscapeShellCmd</function>, y el <link
	 linkend="language.operators.execution">operador ` (ap&oacute;strofe
         invertido)</link>.
	</para>
   </refsect1>
  </refentry>

  <refentry id="function.system">
   <refnamediv>
    <refname>system</refname>
    <refpurpose>Ejecuta un programa externo y muestra su salida</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Description</title>
     <methodsynopsis>
     <type>string</type><methodname>system</methodname>
     <methodparam><type>string</type><parameter>command</parameter></methodparam>
     <methodparam choice="opt"><type>int</type><parameter>return_var</parameter></methodparam>
     </methodsynopsis>
    <para>
    <function>system</function> se parece a la versi&oacute;n C de la funci&oacute;n
    de mismo nombre en que ejecuta la orden indicada en
    <parameter>command</parameter> y muestra el resultado. Si se indica una
    variable como segundo par&aacute;metro, el c&oacute;digo de estado devuelto por la
    orden ejecutada se guardar&aacute; en esta variable.
    </para>
    <para>
    Destacar que si usted va a permitir que se pasen datos provenientes
    de usuarios a esta funci&oacute;n, entonces deber&iacute;a usar
    <function>EscapeShellCmd</function> para asegurarse de que los
    usuarios no pueden enga&ntilde;ar al sistema para ejecutar instrucciones
    arbitrarias.
    </para>
    <para>
    La llamada a <function>system</function> tambi&eacute;n intenta vaciar
    autom&aacute;ticamente el buffer de salida del servidor web despu&eacute;s de
    cada l&iacute;nea de salida si PHP est&aacute; funcionando como un m&oacute;dulo del
    servidor.
    </para>
	<para>
	 Devuelve la &uacute;ltima l&iacute;nea de la orden en caso de &eacute;xito, y
	 falso en caso de fallo.
	 </para>
    <para>
    Si necesita ejecutar una orden y obtener de vuelta todo los datos del
    mismo sin interferencias, use la funci&oacute;n <function>PassThru</function>.
    </para>
    <para>
	 V&eacute;ase tambi&eacute;n <function>exec</function>,
	 <function>PassThru</function>, <function>popen</function>,
	 <function>EscapeShellCmd</function>, y el <link
	 linkend="language.operators.execution">operador ` (ap&oacute;strofe
         invertido)</link>.
	</para>
   </refsect1>
  </refentry>

 </reference>

<!-- 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:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->