regxp ile sorun

3 Cevap php

My php script should validiate address of websites, that user type into the fveyam. Adress should look like this:

http://example.com/example/{some numbers}/

veya

http://example.com/example/{some numbers}

And I have think about something like this, but it doesn't wveyak:

/^(http:\/\/)?example\.com\/example\/\d{1}(\/?)$/

Yanılıyorsam beni nereye gösterebilir misin?

3 Cevap

\d{1} anlamı: YALNIZCA bir rakam. Belki yapmak istiyorum \d+ (en az bir rakam)

hm, bazı sayılar ya da sayı? Eğer ilk vaka anlamına geliyordu sadece tam olarak bir ondalık maç için regexpi söyler çünkü, açgözlü değiştirici, yanlış. Ayrıca, burada gayet güzel çalışıyor.

Neden bunun için PHP'nin yerleşik filter mechanism kullanmak değil mi?

filter_var('http://example.com/foo', FILTER_VALIDATE_URL); // returns the URL
filter_var('not an URL', FILTER_VALIDATE_URL);           // returns false

Keşfet some examples.

Buna ek olarak, bu bileşenleri içine herhangi bir URL bölünmüş sağlayan parse_url hangi vardır.