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 (286 lines) | stat: -rw-r--r-- 11,572 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
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.24 Maintainer: giacomo Status: ready -->
 <reference id="ref.exec">
  <title>Funzioni per l'esecuzione di programmi</title>
  <titleabbrev>Esecuzione di programmi</titleabbrev>

  <partintro>
   <simpara>
    Queste funzioni permettono l'esecuzione di comandi sul sistema stesso,
	e rendono sicuri tali comandi. Queste funzioni sono anche strettamente 
	correlate al 
    <link linkend="language.operators.execution">operatore backtick</link>.
   </simpara>
  </partintro>

  <refentry id="function.escapeshellarg">
   <refnamediv>
    <refname>escapeshellarg</refname>
    <refpurpose>estrae una stringa da usare come un argomento della shell</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrizione</title>
     <methodsynopsis>
      <type>string</type><methodname>escapeshellarg</methodname>
      <methodparam><type>string</type><parameter>arg</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>escapeshellarg</function> aggiunge le virgolette singole
	 attorno ad una stringa ed elude ogni virgoletta semplice per permetterti di
	 passare una stringa direttamente ad una funzione della shell a che questa 
	 venga trattata come un singolo argomento.
	 Questa funzione dovrebbe essere usata per eludere argomenti individuali per funzioni
	 della shell che giungano dall'input del utente. Le funzioni della shell includono
	 <function>exec</function>, <function>system</function> e 
	 <link linkend="language.operators.execution">l'operatore backtick</link>. 
     Un utilizzo standard sarebbe:</para>
    <para>
     <informalexample>
      <programlisting role="php">
<![CDATA[
system("ls ".escapeshellarg($dir));
]]>
      </programlisting>
     </informalexample>
    </para>
    <para>
     Vedi anche <function>exec</function>, <function>popen</function>,
     <function>system</function> e <link
     linkend="language.operators.execution">l'operatore backtick</link>.
    </para>

   </refsect1>
  </refentry>

  <refentry id="function.escapeshellcmd">
   <refnamediv>
    <refname>escapeshellcmd</refname>
    <refpurpose>elude i metacaratteri della shell</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrizione</title>
     <methodsynopsis>
      <type>string</type><methodname>escapeshellcmd</methodname>
      <methodparam><type>string</type><parameter>command</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>escapeshellcmd</function> elude ogni carattere di una stringa che
	 potrebbe essere usata per indurre un comando shell ad eseguire comandi
	 arbitrari. Questa funzione dovrebbe essere usata per assicurarsi che ogni dato
	 che giunga dall'input dell utente venga nutralizzato prima prima di venir passato
	 a funzioni come <function>exec</function> o
     <function>system</function>, o al <link
     linkend="language.operators.execution">operatore backtick
     </link>. Un modello d'utilizzo potrebbe essere:</para>
    <para>
     <informalexample>
      <programlisting role="php">
<![CDATA[
$e = escapeshellcmd($userinput);
system("echo $e"); // qui non ci preoccupiamo se $e contenga spazi
$f = escapeshellcmd($filename);
system("touch \"/tmp/$f\"; ls -l \"/tmp/$f\""); // e qui invece lo facciamo, usando le virgolette
]]>
      </programlisting>
     </informalexample>
    </para>
    <para>
     Vedi anche <function>escapeshellarg</function>, <function>exec</function>, 
     <function>popen</function>, <function>system</function> e <link
     linkend="language.operators.execution">l'operatore backtick</link>.
    </para>

   </refsect1>
  </refentry>

  <refentry id="function.exec">
   <refnamediv>
    <refname>exec</refname>
    <refpurpose>Esegue un programma esterno</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrizione</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> esegue il comando passato da 
     <parameter>command</parameter>, sebbene esso non invii nulla in output
	 Restituisce semplicemente l'ultima linea dal risultato del comando.
	 Se hai bisogno di eseguire un comando ed avere tutti i dati dal comando passato
	 direttamente senza alcuna interferenza, usa la funzione <function>passthru</function>.
    </para>
    <para>
     Se l'argomento <parameter>array</parameter>  presente, allora tale vettore specificato
     verr riempito con ogni linea del output del comando.  
	 Nota che se il vettore contiene gi degli elementi,
     <function>exec</function> li aggiunger in coda vettore.
	 Se non vuoi che la funzione aggiunga elementi, esegui un 
     <function>unset</function> sul vettore prima di passarlo ad
     <function>exec</function>.
    </para>
    <para>
     Se viene passato l'argomento <parameter>return_var</parameter>
     assieme all'argomento <parameter>array</parameter>, allora lo stato
	 del comando eseguito verra scitto in questa variabile.
    </para>
    <para>
     Osserva che se intendi allocare dati che giungano dal utente
	 per essere passate a questa funzione, dovresti usare
     <function>escapeshellcmd</function> per assicurarti che l'utente
     non possa forzare il sistema ad eseguire comandi arbitrari.
    </para>
    <para>
     Nota anche che se inizi un programma usando questa funzione e lo vuoi lasciare
	 in esecuzione in sottofondo, devi assicurarti che l'output del programa venga rediretto
	 ad un file o a qualche altro flusso di output, altrimenti PHP attendera fino alla fine
	 fine dell'esecuzione del programma.
    </para>
    <para>
     Vedi anche <function>system</function>,
     <function>passthru</function>, <function>popen</function>,
     <function>escapeshellcmd</function> e <link
     linkend="language.operators.execution">l'operatore backtick</link>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.passthru">
   <refnamediv>
    <refname>passthru</refname>
    <refpurpose>
     Esegue un programma esterno e mostra l'output non elaborato
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrizione</title>
     <methodsynopsis>
      <type>void</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 funzione <function>passthru</function>  simile alla funzione
     <function>exec</function> inquanto esegue
     <parameter>command</parameter>.  Se il parametro
     <parameter>return_var</parameter>  specificato, lo stato ritornato dal comando
	 Unix verr posto l. Questa funzione deve essere usata al posto di <function>exec</function>
	 o di <function>system</function> quando l'output del comando Unix consiste
	 in dati binari da passare direttamente al browser.
	 Un suo uso frequente consiste nel eseguire, ad esempio, le utility 
     pbmplus che possono restituire un flusso diretto all'immagine.
	 Impostado il tipo di contenuto a <emphasis>image/gif</emphasis> e successivamente
	 chiamando un programma pbmplus per generare una gif puoi realizzare uno script
	 PHP che genera direttamente immagini.</para>
    <para>
     Nota che se avvii un programma usando questa funzione e intendi lasciarlo
	 girare in sottofondo, devi accertarti che l'output del programma sia rediretto
	 in un file o a qualche altro flusso di output o PHP attender fino alla
	 fine dell'esecuzione del programma.
    </para>
    <para>
     Vedi anche <function>exec</function>, <function>system</function>,
     <function>popen</function>, <function>escapeshellcmd</function>,
     e <link linkend="language.operators.execution">l'operatore backtick</link>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.system">
   <refnamediv>
    <refname>system</refname>
    <refpurpose>Esegue un programma esterno e mostra l'output</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrizione</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>  semplicemente come la versione C della funzione
	 che esegue il <parameter>command</parameter> dato e restituisce in uscita il risultato.
	 Se viene fornita una variabile come secondo argomento, allora il codice di stato
	 ritornato dal comando eseguito verr scritto in tale variabile.
    </para>
    <para>
     Nota che se intendi permettere che i dati in ingresso dall'utente
	 vengano passati a questa funzione, dovresti utilizzare la funzione
     <function>escapeshellcmd</function> per assicurarti che l'utente non possa
	 forzare il sistema ad eseguire comandi arbitrari.
    </para>
    <para>
     Nota che se avvii un programma usando questa funzione e intendi lasciarlo
	 girare in sottofondo, devi accertarti che l'output del programma sia rediretto
	 in un file o a qualche altro flusso di output o PHP attender fino alla
	 fine dell'esecuzione del programma.
    </para>
    <para>
     La chiamata a <function>system</function> tenta anche di ripulire automaticamente
	 il buffer di output del web server dopo ogni linea di output se PHP 
	 gira come un modulo server.
    </para>
    <para>
     Ritorna l'ultima linea del output del comando se ha successo e &false;
	 se fallisce.
    </para>
    <para>
     Se devi eseguire un comando ottenendo tutti i dati restituiti dal comando
	 direttamente senza alcuna interferenza, usa la funzione
     <function>passthru</function>.
    </para>
    <para>
     Vedi anche <function>exec</function>,
     <function>passthru</function>, <function>popen</function>,
     <function>escapeshellcmd</function> e <link
     linkend="language.operators.execution">l'operatore backtick</link>.
    </para>
   </refsect1>
  </refentry>

  <refentry id='function.shell-exec'>
   <refnamediv>
    <refname>shell_exec</refname>
    <refpurpose>
     Esegue un comando attraverso la shell e restituisce l'output come stringa
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrizione</title>
     <methodsynopsis>
      <type>string</type><methodname>shell_exec</methodname>
      <methodparam><type>string</type><parameter>cmd</parameter></methodparam>
     </methodsynopsis>
    <para>
     &warn.undocumented.func;
    </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
sgml-parent-document:nil
sgml-default-dtd-file:"../../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
-->