<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.exec.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'function.escapeshellcmd.php',
    1 => 'escapeshellcmd',
    2 => 'Escapa meta-caracteres shell',
  ),
  'up' => 
  array (
    0 => 'ref.exec.php',
    1 => 'Fun&ccedil;&otilde;es para Execu&ccedil;&atilde;o de programas',
  ),
  'prev' => 
  array (
    0 => 'function.escapeshellarg.php',
    1 => 'escapeshellarg',
  ),
  'next' => 
  array (
    0 => 'function.exec.php',
    1 => 'exec',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/exec/functions/escapeshellcmd.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.escapeshellcmd" class="refentry">
  <div class="refnamediv">
   <h1 class="refname">escapeshellcmd</h1>
   <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">escapeshellcmd</span> &mdash; <span class="dc-title">Escapa meta-caracteres shell</span></p>

  </div>

 <div class="refsect1 description" id="refsect1-function.escapeshellcmd-description">
  <h3 class="title">Descrição</h3>
   <div class="methodsynopsis dc-description">
    <span class="methodname"><strong>escapeshellcmd</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$command</code></span>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>escapeshellcmd()</strong></span> escapa qualquer caractere em uma string
   que possa ser utilizada para enganar um comando shell para executar
   comandos arbritários. Esta função deve ser utilizada para ter certeza
   que quaisquer dados vindos do usuário são escapado antes que
   estes dados sejam passados para as funções <span class="function"><a href="function.exec.php" class="function">exec()</a></span> ou
   <span class="function"><a href="function.system.php" class="function">system()</a></span>, ou para o <a href="language.operators.execution.php" class="link">operador
   de execução</a>.
  </p>
  <p class="para">
   Os seguintes caracteres são precedidos por uma barra invertida:
   <code class="literal">&amp;#;`|*?~&lt;&gt;^()[]{}$\</code>, <code class="literal">\x0A</code>
   e <code class="literal">\xFF</code>. <code class="literal">&#039;</code> e <code class="literal">&quot;</code>
   são escapados apenas se não estiverem em pares. No windows, todos estes caracteres
   mais <code class="literal">%</code> e <code class="literal">!</code> são precedidos por um circunflexo
   (<code class="literal">^</code>).
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.escapeshellcmd-parameters">
  <h3 class="title">Parâmetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">command</code></dt>
     <dd>
     <p class="para">
      O comando que será escapado.
     </p>
    </dd>
   
  </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.escapeshellcmd-returnvalues">
  <h3 class="title">Valor Retornado</h3>
  <p class="para">
   A string escapada.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.escapeshellcmd-examples">
  <h3 class="title">Exemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
   <p><strong>Exemplo #1 Exemplo de <span class="function"><strong>escapeshellcmd()</strong></span></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Permitindo número arbitrário de argumentos intencionalmente.<br /></span><span style="color: #0000BB">$command </span><span style="color: #007700">= </span><span style="color: #DD0000">'./configure '</span><span style="color: #007700">.</span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'configure_options'</span><span style="color: #007700">];<br /><br /></span><span style="color: #0000BB">$escaped_command </span><span style="color: #007700">= </span><span style="color: #0000BB">escapeshellcmd</span><span style="color: #007700">(</span><span style="color: #0000BB">$command</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">system</span><span style="color: #007700">(</span><span style="color: #0000BB">$escaped_command</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.escapeshellcmd-notes">
  <h3 class="title">Notas</h3>
  <div class="warning"><strong class="warning">Aviso</strong>
   <p class="para">
    <span class="function"><strong>escapeshellcmd()</strong></span> deve ser usada na string de comando
    inteira, e ainda assim permite ao intruso passar
    um número arbitrário de argumentos. Para escapar um único argumento,
    a função <span class="function"><a href="function.escapeshellarg.php" class="function">escapeshellarg()</a></span> deve ser usada em seu lugar.
   </p>
  </div>
  <div class="warning"><strong class="warning">Aviso</strong>
   <p class="para">
    Espaços não serão escapados por <span class="function"><strong>escapeshellcmd()</strong></span>,
    o que pode ser problemático em caminhos do Windows como:
    <code class="literal">C:\Program Files\ProgramName\program.exe</code>.
    Isto pode ser mitigado usando-se o seguinte trecho de código:
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$cmd </span><span style="color: #007700">= </span><span style="color: #0000BB">preg_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">'`(?&lt;!^) `'</span><span style="color: #007700">, </span><span style="color: #DD0000">'^ '</span><span style="color: #007700">, </span><span style="color: #0000BB">escapeshellcmd</span><span style="color: #007700">(</span><span style="color: #0000BB">$cmd</span><span style="color: #007700">));</span></span></code></div>
    </div>

   </p>
  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.escapeshellcmd-seealso">
  <h3 class="title">Veja Também</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.escapeshellarg.php" class="function" rel="rdfs-seeAlso">escapeshellarg()</a> - Escapa uma string para ser usada como um argumento shell</span></li>
    <li><span class="function"><a href="function.exec.php" class="function" rel="rdfs-seeAlso">exec()</a> - Executa um programa externo</span></li>
    <li><span class="function"><a href="function.popen.php" class="function" rel="rdfs-seeAlso">popen()</a> - Abre um processo como ponteiro de arquivo</span></li>
    <li><span class="function"><a href="function.system.php" class="function" rel="rdfs-seeAlso">system()</a> - Executa um programa externo e mostra a sa&iacute;da</span></li>
    <li><a href="language.operators.execution.php" class="link">operador de execução</a></li>
   </ul>
  </p>
 </div>

</div><?php manual_footer($setup); ?>