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

    <para>
        Ce filtre va résoudre un lien ou un chemin en chemin absolu canonique. Toutes références à
        <filename>'/./'</filename>, <filename>'/../'</filename> et tout ajout supplémentaire de
        <filename>'/'</filename> sera résolu ou supprimé. Aucun caractère de lien symbolique ne sera
        présent dans le résultat (<filename>'/./'</filename> ou <filename>'/../'</filename>)
    </para>

    <para>
        <classname>Zend_Filter_RealPath</classname> retourne <constant>FALSE</constant> en cas d'echec
        par exemple si le fichier n'existe pas. Sur les systems BSD,
        <classname>Zend_Filter_RealPath</classname> n'échoue pas si seule la dernière partie du chemin
        n'existe pas, les autres systèmes retourneront <constant>FALSE</constant>.
    </para>

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

// retourne '/www/mypath'
]]></programlisting>

    <para>
        Il peut être nécessaire quelques fois de vouloir utiliser ce filtre sur des chemins inexistants.
        Par exemple récupérer le realpath d'un chemin à créer. Dans ce cas vous pouvez passer
        <constant>FALSE</constant> au constructeur, ou utiliser <methodname>setExists()</methodname>.
    </para>

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

// retourne '/www/non/existing/path' même si file_exists ou realpath retourneraient false
]]></programlisting>

</sect2>
