<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.url.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.urlencode.php',
    1 => 'urlencode',
    2 => 'URL-kodiert einen String',
  ),
  'up' => 
  array (
    0 => 'ref.url.php',
    1 => 'URL Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.urldecode.php',
    1 => 'urldecode',
  ),
  'next' => 
  array (
    0 => 'book.v8js.php',
    1 => 'V8js',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/url/functions/urlencode.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.urlencode" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">urlencode</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">urlencode</span> &mdash; <span class="dc-title">URL-kodiert einen String</span></p>

 </div>

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

  <p class="para rdfs-comment">
   Diese Funktion ist nützlich als einfache Möglichkeit, eine Zeichenkette zu
   kodieren, die im Abfrageteil einer URL zur Übergabe von Variablen an die
   nächste Seite verwendet werden soll.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.urlencode-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">string</code></dt>
     <dd>
      <p class="para">
       Der zu kodierende String.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.urlencode-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   Gibt einen String zurück, in dem alle nicht-alphanumerischen Zeichen außer
   <code class="literal">-_.</code> durch ein Prozentzeichen (<code class="literal">%</code>)
   gefolgt von zwei Hexadezimalwerten und Leerzeichen durch ein Plus
   (<code class="literal">+</code>) ersetzt werden. Das Encoding geschieht auf dem
   gleichen Wege, wie auch durch ein WWW-Formular gepostete Daten kodiert
   werden - das entspricht der Auszeichnung des Dateityps
   <code class="literal">application/x-www-form-urlencoded</code>. Diese Auszeichnung
   unterscheidet sich von der Kodierung nach <a href="https://datatracker.ietf.org/doc/html/rfc3986" class="link external">&raquo;&nbsp;RFC 3986</a> (siehe auch
   <span class="function"><a href="function.rawurlencode.php" class="function">rawurlencode()</a></span>) dadurch, dass aus historischen Gründen
   das Leerzeichen als Pluszeichen (+) kodiert wird.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.urlencode-examples">
  <h3 class="title">Beispiele</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 <span class="function"><strong>urlencode()</strong></span>-Beispiel</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$userinput </span><span style="color: #007700">= </span><span style="color: #DD0000">'Data123!@-_ +'</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"BenutzerEingabe: </span><span style="color: #0000BB">$userinput</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">'&lt;a href="mycgi?foo='</span><span style="color: #007700">, </span><span style="color: #0000BB">urlencode</span><span style="color: #007700">(</span><span style="color: #0000BB">$userinput</span><span style="color: #007700">), </span><span style="color: #DD0000">'"&gt;'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">BenutzerEingabe: Data123!@-_ +
&lt;a href=&quot;mycgi?foo=Data123%21%40-_+%2B&quot;&gt;</pre>
</div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Beispiel #2 <span class="function"><strong>urlencode()</strong></span> und
     <span class="function"><a href="function.htmlentities.php" class="function">htmlentities()</a></span>-Beispiel</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$foo </span><span style="color: #007700">= </span><span style="color: #DD0000">'Data123!@-_ +'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= </span><span style="color: #DD0000">"Nicht derselbe Inhalt wie </span><span style="color: #0000BB">$foo</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"foo: </span><span style="color: #0000BB">$foo</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"bar: </span><span style="color: #0000BB">$bar</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$query_string </span><span style="color: #007700">= </span><span style="color: #DD0000">'foo=' </span><span style="color: #007700">. </span><span style="color: #0000BB">urlencode</span><span style="color: #007700">(</span><span style="color: #0000BB">$foo</span><span style="color: #007700">) . </span><span style="color: #DD0000">'&amp;bar=' </span><span style="color: #007700">. </span><span style="color: #0000BB">urlencode</span><span style="color: #007700">(</span><span style="color: #0000BB">$bar</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">'&lt;a href="mycgi?' </span><span style="color: #007700">. </span><span style="color: #0000BB">htmlentities</span><span style="color: #007700">(</span><span style="color: #0000BB">$query_string</span><span style="color: #007700">) . </span><span style="color: #DD0000">'"&gt;'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">foo: Data123!@-_ +
bar: Nicht derselbe Inhalt wie Data123!@-_ +
&lt;a href=&quot;mycgi?foo=Data123%21%40-_+%2B&amp;amp;bar=Not+the+same+content+as+Data123%21%40-_+%2B&quot;&gt;</pre>
</div>
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.urlencode-notes">
  <h3 class="title">Anmerkungen</h3>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <p class="para">
    Seien Sie vorsichtig beim Umgang mit Variablen, die HTML-Entities enthalten
    könnten. Angaben wie &amp;amp, &amp;copy und &amp;pound werden vom Browser
    geparst und die eigentliche Entität wird anstelle des gewünschten
    Variablennamens verwendet. Dies ist eine naheliegende Schwierigkeit, über
    die das W3C bereits seit Jahren informiert. Die entsprechende Referenz
    finden Sie hier: <a href="http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2" class="link external">&raquo;&nbsp;http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2</a>.
   </p>
   <p class="para">
    PHP unterstützt den Austausch des vom W3C empfohlenen Argument-Trenners
    Semikolon durch einen selbstgewählten Trenner über die
    arg_separator-Direktive in der php.ini. Leider senden die meisten
    User-Agents Formulardaten nicht im standardkonformen semikolongetrennten
    Format. Ein möglicher Weg, mit diesem Problem umzugehen, ist die Verwendung
    von &amp;amp; anstelle von &amp; als Trennzeichen. Sie müssen dafür nicht
    die php.ini-Direktive arg_separator verändern. Belassen Sie sie als &amp;,
    und verwenden Sie statt dessen für Ihre URLs die Funktionen
    <span class="function"><a href="function.htmlentities.php" class="function">htmlentities()</a></span> oder <span class="function"><a href="function.htmlspecialchars.php" class="function">htmlspecialchars()</a></span>.
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.urlencode-seealso">
  <h3 class="title">Siehe auch</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.urldecode.php" class="function" rel="rdfs-seeAlso">urldecode()</a> - Dekodiert eine URL-kodierte Zeichenkette</span></li>
    <li><span class="function"><a href="function.htmlentities.php" class="function" rel="rdfs-seeAlso">htmlentities()</a> - Wandelt alle geeigneten Zeichen in entsprechende HTML-Entities um</span></li>
    <li><span class="function"><a href="function.rawurlencode.php" class="function" rel="rdfs-seeAlso">rawurlencode()</a> - URL-Kodierung nach RFC 3986</span></li>
    <li><span class="function"><a href="function.rawurldecode.php" class="function" rel="rdfs-seeAlso">rawurldecode()</a> - Dekodiert URL-kodierte Strings</span></li>
    <li><a href="https://datatracker.ietf.org/doc/html/rfc3986" class="link external">&raquo;&nbsp;RFC 3986</a></li>
   </ul>
  </p>
 </div>


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