2010-05-28 4 views
1

J'ai des liens symboliques vers certains répertoires parce que les noms des répertoires ont des caractères non anglais dont j'ai eu assez à faire pour essayer de faire correspondre les règles de réécriture d'Apache. Il ya une prime sur cette question trouble with utf-8 chars & apache2 rewrite rules quelqu'un veut y aller, et de l'air des choses beaucoup de gens aimeraient voir une solution générale à ce problème, mais pendant ce temps, j'ai fait un lien symbolique ASCII à chacun de ces répertoires offensants. Maintenant, les règles de réécriture reviennent à alpha et _ et - et mes soucis de sécurité sont moindres et cela charge les ressources que je veux. Mais j'ai toujours besoin du nom du répertoire cible réel à des fins d'affichage. Je ai googlé "informations de répertoire PHP, lien symbolique PHP", mais n'a rien trouvé. Je dois faire quelque chose comme ceci:Existe-t-il un moyen en PHP de vérifier si un répertoire est un lien symbolique?

if (is_symlink($myResDirName)) { 
    $realDirName = follow_symlink($myResDirName); 
} 

Répondre

7

Vous cherchez is_link

+0

C'est ce que vous recherchez. Si vous avez besoin de trouver des choses comme celles-ci dans le futur, pensez à googler quelque chose comme "php symlink" .. dans ce cas, vous êtes amené à la fonction symlink sur le site officiel de PHP .. alors, à la fin de chaque description de fonction avoir des "fonctions connexes" .. vous pouvez sauter entre eux pour voir si un ajustement à vos besoins. Au moins c'était comme ça que j'ai trouvé cette fonction aussi;) –

+0

J'ai aussi essayé is_symlink. Mauvais sur moi pour ne pas penser aux bons mots-clés et pour manquer les petits caractères au fond. Habituellement, si c'est sur php.net je le trouve. Et merci! –

+0

is_link renvoie false pour moi (un non, je n'utilise pas Windows). Quelqu'un a une idée pourquoi? –

Questions connexes