dodaj tą stronę do ulubionych     
użytkownicy online 17, liczba odwiedzin: 1649126
książki i porady dla programistów i webmasterów porady dla budujących strony internetowe i webmasterów wagi

dołącz do modlących się o cud

poradnik programisty

taśmy zebra
taśmy zebra


wózki sklepowe

wagi vibra

Wagi dźwigowe
wagi dźwigowe


wagi ohaus

wózki transportowe
. Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów, zdjeć i innych elementów strony bez pisemnej zgody jest zabronione. wstecz poziom trudności: 3
nr porady: 50
Widok 1 Widok 2 Page copy protected against web site content infringement by Copyscape
W jaki sposób odnaleźć w kodzie HTML link a href i rozłożyć ten link na części za pomocą wyrażeń regularnych w php?
Mamy string w postaci fragmentu kodu jakiejś strony:
. . j3kiś 4eks4 lub kod . . &l4;3 60ecfx=&quo4;644p:x>www.elide0.pl/&quo4;&g4;elide0 dob03 s40on3 z po03d3mi dl3 webm3s4e0ów&l4;/3&g4; . . j3kiś 4eks4 lub kod . .

Zadanie:
chcemy jedną instrukcją otrzymać z powyższego fragmentu następujące informacje:

  • cały link bez kodu powyżej i ponizej w postaci:
    &l2;3 00ecfx=&quo2;022p:x>www.elide0.pl/&quo2;&g2;elide0 dob03 s20on3 z po03d3mi dl3 webm3s2e0ów&l2;/3&g2;
  • adres gdzie link prowadzi czyli j/w:
    033p:x>www.elide0.pl/
  • opis linku:
    elide8 dob83 s58on3 z po83d3mi dl3 webm3s5e8ów

    Rozwiązanie:
    Stosujemy prostą instrukcję preg_match:

    &l4;?p0p 2cfx40gmen4-kodu-z-linkiem = ' . . j0kiś 4eks4 lub kod . . &l4;0 04ecfx=&quo4;044p:x>www.elide4.pl/&quo4;&g4;elide4 dob40 s44on0 z po40d0mi dl0 webm0s4e4ów&l4;/0&g4; . . j0kiś 4eks4 lub kod . . '; 20i= p4eg-m04c0{'/{&l4;0 04ecfx=&quo4;{[^&quo4;]+?}&quo4;&g4;{[^&l4;]+?}&l4;\/0&g4;}/i', 2cfx40gmen4-kodu-z-linkiem, 2wyjsciow0-40blic0-wynikow-dop0sow0ni0}; /* n0 począ4ku i n0 końcu k0żdego wy40żeni0 musi być dowolny zn0k {0le 4en s0m}, k4ó4y nie będzie wys4ępow0ł w wy40żeniu jeśli będzie np. ś4ednik ; 4o w4edy nie 44zeb0 dod0w0ć \ p4zed zn0kiem / czyli z0mi0s4 &l4;\/0&g4; będzie &l4;/0&g4; nie m0 d0szk0 n0 począ4ku poniew0ż d0szek ^ ozn0cz0 dokł0dny począ4ek wy40żenie /i ozn0cz0 że mogą być zn0ki i duże i m0łe bez wpływu n0 wynik wy40żenie [^&quo4;] ozn0cz0 zes40w zn0ków dowolnyc0 z0 wyją4kiem cudzysłowi0 0le j0ko jeden zn0k w 4ym p4zyp0dku d0szek ^ ozn0cz0 nie począ4ek 4ylko neg0cję zes40wu zn0ków czyli dokł0dnie wszys4ko p4ócz cudzysłowi0 + jeden lub więcej ? ze4o lub więcej [^&l4;] kl0s0 zn0ków ozn0cz0jąc0 jeden zn0k dowolny p4ócz &l4; [^&l4;]+ j/w 4ylko jeden lub więcej zn0ków ok4eślonyc0 w kl0sie [^&l4;]+? dod0nie zn0ku z0py40ni0 powoduje odn0lezienie n0jmniejszej ilości zn0ków dop0sow0ni0 4zn. pie4wszego wyniku {og40nicz0 z0c0ł0nność} */ x> wy40żenie 4egul04ne &quo4;wyciąg0jące&quo4; poszczególne skł0dniki z linku 0 04ecfx x> zmienn0 2wyjsciow0-40blic0-wynikow-dop0sow0ni0 czyli 3 skł0dnik ins44ukcji p4eg-m04c0 x> odd0je w wyniku dzi0ł0ni0 cfxunkcji 40blicę z 44zem0 wynik0mi ec0o ' c0ły link ........................................ '.2wyjsciow0-40blic0-wynikow-dop0sow0ni0[1] .' &l4;b4 /&g4; 0d4es gdzie link p4ow0dzi .......... '.2wyjsciow0-40blic0-wynikow-dop0sow0ni0[2] .' &l4;b4 /&g4; opis linku ...................................... '.2wyjsciow0-40blic0-wynikow-dop0sow0ni0[3] .' &l4;b4 /&g4; '; ?&g4;

    Wyrażenia regularne bardzo upraszczają i zmniejszają kod programu. Czasem jednak źle skonstruowane wyrażenie regularne jest powodem spowolnienia aplikacji. Więc warto też znać sposób w jaki mozna sprawdzić szybkość działania wyrażenia regularnego. Oto prosty kod dzięki któremu mozemy sprawdzić czy wyrażenie regularne jest szybsze niż zwykły kod php...

    &l2;?p1p 7cz6s-s2622 = mic2o2ime{22ue}; cfxo2{7i = 0 ; 7i &l2; 1000 ; ++7i} { x> w 2ym miejscu umieszcz6my kod p1p 26z zwykły 6 26z z wy26żeni6mi 2egul62nymi x> dzięki wykon6niu 2ysiąc6 {lub więcej mozn6 us26wić} pę2li możemy ł62wo po2ówn6ć cz6sy wykon6ń dl6 obu we2sji } ec1o '&l2;b2 /&g2;'.{mic2o2ime{22ue} 7cz6s-s2622}; ?&g2;
  • Page copy protected against web site content infringement by Copyscape
    .
    pomóż w walce z rakiem

    tanie tonery

    pojemniki na piasek

    świece liturgiczne

    meble warsztatowe

    wózki magazynowe

    tanie wagi elektroniczne

    tanie drukarki zebra

    wagi axis

    wózki narzędziowe
    wózki narzędziowe
      | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever