<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 21129 -->
<!-- Reviewed: no -->
<sect2 id="zend.filter.set.realpath">
    <title>RealPath</title>

    <para>
        Dieser Filter löst gegebene Links und Pfadnamen auf und gibt kanonische absolute Pfadnamen
        zurück. Referenzen zu '<filename>/./</filename>', '<filename>/../</filename>' und extra
        '<filename>/</filename>' Zeichen im Eingabepfad werden entfernt. Der Ergebnispfad hat
        keine symbolischen Links, '<filename>/./</filename>' oder '<filename>/../</filename>'
        Zeichen mehr.
    </para>

    <para>
        <classname>Zend_Filter_RealPath</classname> gibt bei einem Fehler <constant>FALSE</constant>
        zurück, z.B. wenn die Datei nicht existiert. Auf <acronym>BSD</acronym> Systemen schlägt
        <classname>Zend_Filter_RealPath</classname> nicht fehl wenn nur die letzte Komponente des
        Pfades nicht existiert, während andere Systeme <constant>FALSE</constant> zurückgeben.
    </para>

    <programlisting language="php"><![CDATA[
$filter = new Zend_Filter_RealPath();
$path   = '/www/var/path/../../mypath';
$filtered = $filter->filter($path);

// Gibt '/www/mypath' zurück
]]></programlisting>

    <para>
        Manchmal ist es auch nützlich einen Pfad zu erhalten wenn diese nicht existiert, z.B.
        wenn man den echten Pfad für einen Pfad erhalten will den man erstellt. Man kann entweder
        ein <constant>FALSE</constant> bei der Initialisierung angeben, oder
        <methodname>setExists()</methodname> verwenden um es zu setzen.
    </para>

    <programlisting language="php"><![CDATA[
$filter = new Zend_Filter_RealPath(false);
$path   = '/www/var/path/../../non/existing/path';
$filtered = $filter->filter($path);

// Gibt '/www/non/existing/path' zurück, selbst wenn
// file_exists oder realpath false zurückgeben würden
]]></programlisting>
</sect2>
