Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyrażenie regularne - LINK - dane wyjściowe
twardes
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 13.01.2008

Ostrzeżenie: (0%)
-----


Witam wszystkich

Walczę już jakiś czas z takim oto problemem.

Chcę ze stringów typu:
http://rapidshare.com/files/114812788/TFK-aXXo.part7.rar (link z oznaczeniem protokołu)
rapidshare.com/files/114812788/TFK-aXXo.part7.rar
>http://rapidshare.com/files/114812788/TFK-aXXo.part7.rar<
"http://rapidshare.com/files/114812788/TFK-aXXo.part7.rar"
bleblabluhttp://rapidshare.com/files/114812788/TFK-aXXo.part7.rar


lub to samo z subdomeną www

http://www.rapidshare.com/files/114812788/TFK-aXXo.part7.rar (link z oznaczeniem protokołu)
www.rapidshare.com/files/114812788/TFK-aXXo.part7.rar
>http://www.rapidshare.com/files/114812788/TFK-aXXo.part7.rar<
"http://www.rapidshare.com/files/114812788/TFK-aXXo.part7.rar"
bleblabluhttp://www.rapidshare.com/files/114812788/TFK-aXXo.part7.rar


lub zawierających domenę (rapidsearch.de)



"wyciągnąć" takie części linku:


Kod
                    
                     http://rapidshare.com/files/114812788/TFK-aXXo.part7.rar
                       1   |       2      |  3  |    4    |       5      | 6


1 - oznaczenie protokołu
2 - domenę
3 - wirtualny katalog
4 - zapewne ID
5 - nazwę pliku
6 - rozszerzenie

wszystkie najchętniej bez ukośników ale nie jest to konieczne

najbardziej mi zależy na:

1+2+3+4+5+6 (całość)
2+3+4+5+6 (link bez http://)
2 (domenie rapidsearch.com lub rapidsearch.de)
4 (numerze ID)
5 (sama nazwa pliku)
5+6 (nazwa pliku)
6 (rozszerzenie)

mam już całkiem niezłe, jednak niewystarczające wyrażenie pobierające 2 interesujące mnie zmienne do tablicy
Kod
preg_match('/[http\:\/\/rapidshare\.com\/files\/][0-9]+[\/]([A-Za-z0-9\-\_\.\,\+]+)/',$data,$disp);


modyfikuje to to na różne sposoby ale chyba już zbyt zmęczony jestem, proszę o podpowiedzi
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Protokołu nie potrzebujesz. Raz że zawsze jest to HTTP, dwa że nie zawsze występuje w podanych wzorcach. Pisane z palca:
Kod
#(rapidshare\.(?:de|com))/files/(\d+)/([^\.]+)\.([a-z]+)#i


Ten post edytował Crozin 17.05.2009, 21:21:03
Go to the top of the page
+Quote Post
Wicepsik
post
Post #3





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. <?php
  2. $zmienna = "http://rapidshare.com/files/114812788/TFK-aXXo.part7.rar";
  3. preg_match_all('/(.*)://(.*)/(.*)/(.*)/(.*).([a-z]{3,})/', $uptime, $matches3);
  4.  
  5. echo '<pre>';
  6. print_r($matches3);
  7. echo '</pre>';
  8. ?>


Kod
Array
(
    [0] => Array
        (
            [0] => http://rapidshare.com/files/114812788/TFK-aXXo.part7.rar
        )

    [1] => Array
        (
            [0] => http
        )

    [2] => Array
        (
            [0] => rapidshare.com
        )

    [3] => Array
        (
            [0] => files
        )

    [4] => Array
        (
            [0] => 114812788
        )

    [5] => Array
        (
            [0] => TFK-aXXo.part7
        )

    [6] => Array
        (
            [0] => rar
        )

)
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@Wicepsik: rozszerzenia plików mogą być nawet jednoznakowe.
Go to the top of the page
+Quote Post
Wicepsik
post
Post #5





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


@up
Racja.


  1. <?php
  2. $uptime = "http://rapidshare.com/files/114812788/TFK-aXXo.part7.rar";
  3. preg_match_all('/(.*)://(.*).(.*)/(.*)/(.*)/(.*).([a-z]{1,6})/', $uptime, $matches3);
  4. ?>


Kod
Array
(
    [0] => Array
        (
            [0] => http://rapidshare.com/files/114812788/TFK-aXXo.part7.rar
        )

    [1] => Array
        (
            [0] => http
        )

    [2] => Array
        (
            [0] => rapidshare
        )

    [3] => Array
        (
            [0] => com
        )

    [4] => Array
        (
            [0] => files
        )

    [5] => Array
        (
            [0] => 114812788
        )

    [6] => Array
        (
            [0] => TFK-aXXo.part7
        )

    [7] => Array
        (
            [0] => rar
        )

)


Ten post edytował Wicepsik 17.05.2009, 21:49:17
Go to the top of the page
+Quote Post
pyro
post
Post #6





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


@Wicepsik, więcej niż 3-znakowe też..
Go to the top of the page
+Quote Post
Wicepsik
post
Post #7





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Cytat(pyro @ 17.05.2009, 22:45:43 ) *
@Wicepsik, więcej niż 3-znakowe też..

Nie znam się na rozszerzeniach plików. Niech sobie zmieni (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif)
Go to the top of the page
+Quote Post
pyro
post
Post #8





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Poprostu wystarczy {1,} (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
twardes
post
Post #9





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 13.01.2008

Ostrzeżenie: (0%)
-----


Tylko nie napisałem że ma spełniać wzorzec linku...

zgodnie z twoim wzorem moglby to być też
hfdad://ghdafh/hfda/fhad/jsf/.rdg


Cytat(Wicepsik @ 17.05.2009, 22:20:04 ) *
  1. <?php
  2. $zmienna = &#092;"http://rapidshare.com/files/114812788/TFK-aXXo.part7.rar\";
  3. preg_match_all('/(.*)://(.*)/(.*)/(.*)/(.*).([a-z]{3,})/', $uptime, $matches3);
  4.  
  5. echo '';
  6. print_r($matches3);
  7. echo '';
  8. ?>


Kod
Array
(
     [0] => Array
         (
             [0] => http://rapidshare.com/files/114812788/TFK-aXXo.part7.rar
         )

     [1] => Array
         (
             [0] => http
         )

     [2] => Array
         (
             [0] => rapidshare.com
         )

     [3] => Array
         (
             [0] => files
         )

     [4] => Array
         (
             [0] => 114812788
         )

     [5] => Array
         (
             [0] => TFK-aXXo.part7
         )

     [6] => Array
         (
             [0] => rar
         )

)


Cytat(Crozin @ 17.05.2009, 22:15:57 ) *
Protokołu nie potrzebujesz. Raz że zawsze jest to HTTP, dwa że nie zawsze występuje w podanych wzorcach. Pisane z palca:
Kod
#(rapidshare\.(?:de|com))/files/(\d+)/([^\.]+)\.([a-z]+)#i




Dziękuję, po minimalnych modyfikacjach dostałem co chciałem
Kod
(rapidshare\.(?:com|de))\/files\/(([0-9]+)\/(([A-Za-z0-9\-\_\.\,\+]+)\.([A-Za-z0-9]+)))
Go to the top of the page
+Quote Post
Crozin
post
Post #10





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Czytając
Cytat
Poprostu wystarczy {1,}
Naszło mnie
Pamiętaj, że rozszerzenia pliku może w ogóle nie być. W końcu plik o nazwie "helloWorld" jest tak samo poprawny jak "helloWorld.whatever"

@pyro: {1,} to poprostu + (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
pyro
post
Post #11





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Cytat(Crozin @ 17.05.2009, 23:25:31 ) *
CzytającNaszło mnie
Pamiętaj, że rozszerzenia pliku może w ogóle nie być. W końcu plik o nazwie "helloWorld" jest tak samo poprawny jak "helloWorld.whatever"

@pyro: {1,} to poprostu + (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


Tak to jest, jak się kodzi cały dzień + w nocy. Oczywiście masz rację.

EOT.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 16:09