Autor | Zpráva | ||
---|---|---|---|
Lukáš Fiala Profil |
#1 · Zasláno: 28. 11. 2012, 13:18:13
Dobrý den,
mám při instalaci jistého webu kontrolu validity cesty k souboru. ta vypadá následovně: return preg_match('/^([a-zA-Z]\:\/)?([a-zA-Z0-9\._\/\-\\\\])*$/', $path); potřebuji to upravit tak aby to bralo cestu ve windows. Př. cesta xxx/xxx/xxx projde, ve winech je to x:\xxx\xxx\xxxx neprojde funkci pouzivam dvakrat je treba zkontrolovat cestu \xxx\xxx\xxx a podruhe cestu x:\xxxx\xxx\xxx zjistil jsem ze ta prvni cesta projde druha uz ne. Predem dekuji za odpovedi. |
||
Tori Profil |
preg_match('~^([a-z]\:\\\\)?([a-z0-9._/\\\\-])*$~i', $path); (Změnila jsem oddělovače, aby se nemuselo escapovat i lomítko.)
|
||
Lukáš Fiala Profil |
#3 · Zasláno: 28. 11. 2012, 14:55:22
Tori:
Děkuji mnohokrát funguje :-) jen doufám že sem to nenapsal špatně. validita musí fungovat jak ve windows tak i v Linuxu. :-) |
||
Tori Profil |
#4 · Zasláno: 28. 11. 2012, 15:01:53
Za písmenem jednotky chybělo zpětné lomítko. Vlastně by tam mělo být jenom to, v linuxu taková cesta nedává smysl, změnila jsem [#2]. Nicméně projde (stejně jako předchozím regulárem) i cesta
x:\neco/neco/ - pokud byste chtěl zajistit, aby se používal jen jeden typ oddělovačů v cestě, dá se to vyřešit asi zpětnou referencí.
|
||
Časová prodleva: 11 let
|
0