Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyrażenia regularne, RegExp
Frey
post 1.04.2009, 17:24:23
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.12.2007

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


Witam, mam problem z wyrażeniami regularnymi. Chcę wyciągnąć 3 dane z takiego kawałku kodu html przypisanego do zmiennej:

Kod
$cosik= '%<b>[to chcę wyciągnąć]</b><div style="padding-left: 10px; font-size: 8pt;" class="color">
    
    <div>
    <input name="an" class="pollinput" value="o1" onclick="submit();" style="border: 0px none; vertical-align: middle;" type="radio">
    <span style="font-size: 7pt;" class="color">[to też chcę wyciągnąć]</span>
    </div>
    </div>
    
    </td>
    <td class="small" align="right" valign="bottom" nowrap="nowrap">
    &nbsp;&nbsp;<i>Created By</i>:</td><td align="right" valign="bottom" nowrap="nowrap">
    <div class="small" align="center"><a href="http://www.strona.pl/cosik.php?cos=[i to chcę wyciągnąć]&amp;menu=&amp;submenu=">%';


Jak powinno wyglądać wyrażenie regularne w tych miejscach (Chcę wyciągnąć obojętnie co tam będzie, znaki typu: %^&* też tam występują i niekiedy pole jest puste)? Dodam, że sprawdziłem na http://regexpal.com i podświetla mi kropki w adresie, oraz to co zaznaczyłem: onclick="submit();"
Jak to zrobić i ominąć to co podświetla jako wyrażenia regularne w tym całym kodzie? I czy dało by się to jakoś inaczej (prawdopodobniej szybciej) zrobić?

Pozdrawiam, Frey.

Ten post edytował Frey 1.04.2009, 19:08:25
Go to the top of the page
+Quote Post
trike
post 1.04.2009, 17:48:52
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 9
Dołączył: 9.01.2008

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


jesli ten kod zawsze bedzie wygladal tak, to musisz dopasowac wyrazenie regularne do tego i sprawa zalatwiona.
  1. <?php
  2. echo preg_replace('/^%<b>(.+)</b>/','1',$cosik)
  3. ?>

nie probowalem ale moze sie uda
Go to the top of the page
+Quote Post
erix
post 1.04.2009, 18:59:37
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Proszę o tag tematu.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Frey
post 1.04.2009, 19:13:21
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.12.2007

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


Cytat(trike @ 1.04.2009, 18:48:52 ) *
jesli ten kod zawsze bedzie wygladal tak, to musisz dopasowac wyrazenie regularne do tego i sprawa zalatwiona.
  1. <?php
  2. echo preg_replace('/^%(.+)/','1',$cosik)
  3. ?>

nie probowalem ale moze sie uda

To nie o to chodzi -,- Wiem jak używać preg_match. Chodzi mi o to wyrażenie regularne. Kropka oznacza dowolny znak (litera, cyfra itd. prawda?) i tam gdzie oznaczyłem w kodzie: [to chcę wyciągnąć] etc. to właśnie chcę wyciągnąć dowolne dane stamtąd. Zważ na to, że w adresie w tym całym kodzie html:
Kod
http://www.strona.pl/cosik.php?cos=[i to chcę wyciągnąć]
są kropki które są jako wyrażenie regularne interpretowane. Wie ktoś jak to ominąć?

Cytat(erix @ 1.04.2009, 19:59:37 ) *
Proszę o tag tematu.

Dodałem.

Ten post edytował Frey 1.04.2009, 19:14:01
Go to the top of the page
+Quote Post
trike
post 1.04.2009, 19:17:31
Post #5





Grupa: Zarejestrowani
Postów: 82
Pomógł: 9
Dołączył: 9.01.2008

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


jesli zaczailem o co ci chodzi to przed kropka daj backslash \. , wtedy interpertuje kropke jako kropke a nie jako dowolny znak

Ten post edytował trike 1.04.2009, 19:18:08
Go to the top of the page
+Quote Post
Fifi209
post 1.04.2009, 19:41:07
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat
http://www.strona.pl/cosik.php?cos=[i to chcę wyciągnąć]


$_GET ?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
bluesqad
post 2.04.2009, 08:14:52
Post #7





Grupa: Zarejestrowani
Postów: 50
Pomógł: 6
Dołączył: 25.06.2007
Skąd: Olkusz

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


Kod
\[.*\]


do tej linijki (dokladnie tą wklejalem nie calosc) <div class="small" align="center"><a href="http://www.strona.pl/cosik.php?cos=[i to chcê wyci±gn±æ]&menu=&

dziala bez zarzutu. wyciagnelo tyle ze z nawiasami, ale to mozesz sobie je wyciac (pierwszy i ostatni znak

testowane na: http://maciek.lasyk.info/regexp_checker.html

Ten post edytował bluesqad 2.04.2009, 08:16:29


--------------------
Studio Yaso.pl | | | | | | | | | | => 40%
Go to the top of the page
+Quote Post
erix
post 2.04.2009, 09:22:09
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Albo wystarczy wyciągnąć cały URL - potem potraktować ciąg parse_url" title="Zobacz w manualu PHP" target="_manual i parse_str" title="Zobacz w manualu PHP" target="_manual.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 10:12