Autor Zpráva
Lukáš Fiala
Profil
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
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
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í.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: