ulewicz 0 Zgłoś post Napisano Kwiecień 13, 2011 (edytowany) Witam, Jakiś czas temu napisałem sobie do serwisu skrypt do skracania linku w ajax+php(pod mysql'em), wszystko śmiga oczywiście mi dobrze lecz jak skracam link z adresem http://www.jakislink.pl a jeżeli wpiszę adres http://jakislink.pl (bez www na poczatku) wyskoczy mi error który sobie ustawiłem w skrypcie jako nie poprawna forma linku/adresu. W skrypcie, by sprawdzał poprawność dałem sobie taką linijkę if ( !eregi("^(http://)w*.?w.w+.*{:content:}quot;, $url) ) Próbowałem tam na różne sposoby, no ale nie mogę coś teraz tego naprawić, a z www mi dobrze śmiga... Jakaś rada, którego znaku tam nie powinno być? by przeszło i skróciło adresy też bez "www" na początku. Pozdrawiam. //Edit: ... Niby sobie to zrobiłem, huh zawsze jak coś napiszę to przyjdzie mi do głowy a odchodziłem od zmysłów. Zrobiłem takie coś w kodzie... zamiast tego wyżej: if ( !eregi("^(http://)w*.?.+.*$", $url) ) Dobre rozwiązanie? czy mieli byście lepsze? Edytowano Kwiecień 13, 2011 przez ulewicz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Kwiecień 13, 2011 (edytowany) Po pierwsze zrezygnuj z ereg bo to jest w wersji 5.3 Depraced Samo wyrażeni regularne jest złe bo kropka oznacza dowolny znak, jak ma działać to wyrażenie regularne tzn. co ma walidować i jakie dane są poprawne a jakie nie ? Edytowano Kwiecień 13, 2011 przez regdos (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
ulewicz 0 Zgłoś post Napisano Kwiecień 13, 2011 Hm, rozumiem. Co do danych to http:// by było wymagane na początku jedynie + by sprawdzał poprawność linku w formie http://adres.pl z domeną. Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Kwiecień 13, 2011 ^http://(.*)\.[a-z]{2,}$ Sprawdza początek czy ma http:// potem dowolne wystąpienie znaków, potem kropka potem tld, które może być tylko literami i musi mieć co najmniej dwa znaki. Możesz użyć powyższego ale to ułomne i tak jest, skorzystaj z jakiegoś gotowca np. http://pear.php.net/package/Validate Udostępnij ten post Link to postu Udostępnij na innych stronach
ulewicz 0 Zgłoś post Napisano Kwiecień 13, 2011 (edytowany) Okej, prawię problem mam rozwiązany i z głowy, dzięki. Ale mam jeszcze jedną sugestię, jak np. chcę ktoś skrócić link np w formie Ps. Celowo spacja po com, bo aplet wyskoczy. http://youtube.com / watch?v=giMwiFhLSmk&feature=player_embedded ze slashiem i znakami po koncówce (domenie) to, nie idzie bo error poprawności. Hm? co dodać na koniec? /[a-z] ? Edytowano Kwiecień 13, 2011 przez ulewicz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Kwiecień 13, 2011 zamiast "$" dać "/?" co daje sprawdzenie czy na końcu jest ukośnik lub nie ma. Znak dolara oznacz koniec a jak go wyrzucimy to dalej może być cokolwiek. Udostępnij ten post Link to postu Udostępnij na innych stronach
eRIZ 4 Zgłoś post Napisano Kwiecień 19, 2011 Albo olać totalnie wyrażenia regularne i skorzystać z filter_var: http://pl2.php.net/filter_var Do tego flaga: FILTER_VALIDATE_URL Wszystko masz w przykładach/komentarzach. Udostępnij ten post Link to postu Udostępnij na innych stronach