Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]wyrażenia regularne część 2
srwsio
post 14.06.2010, 21:26:15
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 20.01.2005
Skąd: Szczecin

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


Niestety nie mogę znaleźć wyjaśnienia jak poprzez wyrażenie regularne wyciągnąć dane ze strony które są zmienne.

Np. taki kod
  1. <span class="test>1234</span>


i teraz jak wyciągnąć te 1234, skoro de facto nie wiem że tam jest?

z góry dziękuję za pomoc
Go to the top of the page
+Quote Post
nospor
post 15.06.2010, 06:35:14
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
skoro de facto nie wiem że tam jest
ALe wiesz co je otacza. Do tego własnie słuzą wyrażenia regularne. Masz jakies podstawy z tego? Pokaz jak kombinowałes.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
srwsio
post 15.06.2010, 07:28:53
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 20.01.2005
Skąd: Szczecin

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


  1. function curl_poziom($site){
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  4. curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
  5. curl_setopt($ch, CURLOPT_URL, $site);
  6. ob_start(); // prevent any output
  7.  
  8. $poziom = curl_exec ($ch); // execute the curl command
  9. $kod = '/id="pkt">([0-9\.,]{0,17})<\/span>';
  10. $patt ='#/id="pkt">([0-9\.,]{0,17})<\/span>#i';
  11.  
  12. preg_match($patt, $kod, $poziom);
  13.  
  14. print_r($poziom);
  15. return $poziom;
  16.  
  17. ob_end_clean(); // stop preventing output
  18. curl_close ($ch);
  19. }

no na razie tak kombinowałem - w miejscu gdzie jest wyrażenie regularne jest liczba 57.324.358,23 - wyrażenie chyba dobrze mam do takiego ciągu zastosowane?
Go to the top of the page
+Quote Post
Fifi209
post 15.06.2010, 09:02:53
Post #4





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

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


Skoro używasz # to nie musisz escapować

  1. $patt ='#/id="pkt">([0-9\.,]{0,17})</span>#i';


--------------------
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
srwsio
post 15.06.2010, 09:16:08
Post #5





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 20.01.2005
Skąd: Szczecin

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


tak tylko dalej zwraca pusty array
Go to the top of the page
+Quote Post
erix
post 15.06.2010, 14:04:01
Post #6





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




Cytat
tak tylko dalej zwraca pusty array

Puść sobie
  1. <span class="test>1234</span>

przez preg_quote, w pewnym miejscu trzeba zaescape'ować kilka znaków, a ta funkcja Ci powie, co.


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

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
Fifi209
post 15.06.2010, 15:10:16
Post #7





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

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


Cytat(erix @ 15.06.2010, 15:04:01 ) *
Puść sobie
  1. <span class="test>1234</span>

przez preg_quote, w pewnym miejscu trzeba zaescape'ować kilka znaków, a ta funkcja Ci powie, co.


mi tam działa ;d

  1. <?php
  2.  
  3. $string = '<span class="test>1234.345,4</span>';
  4. $patt ='#<span class="test>([0-9\.\,]{0,17})</span>#i';
  5. preg_match($patt, $string, $matches);
  6. echo '<pre>';
  7. print_r($matches);
  8.  
  9.  
  10.  
  11. ?>


--------------------
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

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: 18.06.2025 - 18:46