2010-12-05 00:50:37 Post #1
korey
kombinuje jak zrobić wyrażenie regularne które walidiowało by adres url który prowadzi bezpośrednio do obrazka. na czytałem się kilka artykułów i niestety nadal nic nie rozumiem..
ale zrobiłem coś takiego:
<?php
$str = 'http://www.imageshack.pl/katalog/image.gif';
preg_match('/^(http|https)\:\/\/[w-W]{3}\.[a-zA-Z0-9\.\-\_]\.[a-z]{2,3}\/[a-zA-Z0-9]\/[a-zA-Z0-9\-\_]\.(jpg|jpeg|gif|png|bnp)$/', $str);
?>
wyrażenie zwraca mi FALSE
pomocy
2010-12-05 17:34:39 Post #2
nospor
Głównie zapomniałeś o +
<?php
preg_match('/^(http|https)\:\/\/w{3}\.[a-z0-9\-\_]+\.[a-z]{2,3}\/[a-z0-9]+\/[a-z0-9\-\_]+\.(jpg|jpeg|gif|png|bnp)$/i', $str);
?>
2010-12-06 18:56:29 Post #3
korey
no twoja propozycja działa, ale chciałem ją ulepszyć i chyba popsułem
chciałbym by akceptowało mi jeden i więcej katalogów a adresie.
teraz zrobiłem coś takiego i nie działa zaden $string ;/
<?php
// $str ='http://img697.imageshack.us/img697/3572/av43704.jpg';
// $str = 'http://www.imageshack.pl/katalog/image.gif';
preg_match('/^(http|https)\:\/\/w{3}\.[a-z0-9\-\_\.]+\.[a-z]{2,3}\/[a-z0-9]\/+.[a-z0-9\-\_]+\.(jpg|jpeg|gif|png|bnp)$/i, $str');
?>
2010-12-06 19:06:17 Post #4
nospor
A wystarczylo [a-z0-9]+\/ zamienic na ([a-z0-9]+\/)+
preg_match('/^(http|https)\:\/\/w{3}\.[a-z0-9\-\_]+\.[a-z]{2,3}\/([a-z0-9]+\/)+[a-z0-9\-\_]+\.(jpg|jpeg|gif|png|bnp)$/i', $str);
2010-12-06 19:22:09 Post #5
korey
Ej ale testuje to i nie dziala..
2010-12-06 19:45:47 Post #6
nospor
Ej, ale ja testowalem i mi dzialalo
Pokaz lepiej swoj kod od testow
2010-12-06 19:46:16 Post #7
korey
2010-12-06 19:51:15 Post #8
nospor
Ja to testowalem w php a nie na jakiejs stronce... Sprawdz czy dziala ci w php a potem placz ze nie dziala
2010-12-06 20:14:32 Post #9
korey
pierwszy $str nie działa drugi tak .
jak zrobić by wyrażenie wybierało. albo www albo img1231..? bo to w tym chyba problem
2010-12-06 20:17:56 Post #10
nospor
preg_match('/^(http|https)\:\/\/(w{3}|img\d+)\.[a-z0-9\-\_]+\.[a-z]{2,3}\/([a-z0-9]+\/)+[a-z0-9\-\_]+\.(jpg|jpeg|gif|png|bnp)$/i', $str);
2010-12-06 20:48:25 Post #11
korey
no super teraz działa..

przydało by się byś zrobił jakiś ciekawy artykuł o wyrażeniach regularnych..
2010-12-06 21:42:05 Post #12
nospor
Nie czuję się ekspertem od wyrażeń
To co ty tutaj miales to banalne wyrazenie, podstawy wręcz - na tyle się znam
2010-12-07 08:03:38 Post #13
korey
ech.. szkoda.. Ja z tego co znalazłem w necie to wiem ze:
przed tym "\" daje sie znak specjalny.
pomiędzy [ i ] zakres znaków
pomiędzy { i } ilość znaków
pomiędzy tymi ( ) chyba grupa i to cala moja wiedza..
Odpowiedz