Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> preg_match, wyciagniecie znakow miedzy div'ami
Kruq
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 2
Dołączył: 8.02.2004
Skąd: Olsztyn

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


Zaczynam sie bawic wyrazeniami regularnymi i chce wyciagnac ze stronki kod zrodlowy ktory jest pomiedzy DIVami mam cos takiego :
  1.  
  2. $plik = file_get_contents('http://www.costam.pl/stronka.html');
  3.  
  4. preg_match('/<div class\=\"leftcolumn\"\>(.*)*\<\/div\>/',$plik, $znalezione);
  5.  
  6. echo $znalezione[0];
  7.  
  8. echo $znalezione[1];
  9.  


wynik :

Kod
Notice: Undefined offset: 0 in \test2.php on line 6

Notice: Undefined offset: 1 in \test2.php on line 10


jakies rady ?


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Kruq
post
Post #2





Grupa: Zarejestrowani
Postów: 56
Pomógł: 2
Dołączył: 8.02.2004
Skąd: Olsztyn

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


jezeli to ma naprawde znaczenie to podam , ale chyba nie wplywa na to jaki kod html jest wewnatrz DIVa ... standardowe tabele.

nie wiem jak to zapisac zeby wybrac zawartosc powmiedzy

<div class="leftcolumn"> kod HTML </div>

Jest to pewnie banalne rozwiazanie ale jak na poczatek przygod z wyrazeniami regularnymi to nie moge sobie poradzic (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





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

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


#<div class="leftcolumn">(.*)</div>#i
Go to the top of the page
+Quote Post
Kruq
post
Post #4





Grupa: Zarejestrowani
Postów: 56
Pomógł: 2
Dołączył: 8.02.2004
Skąd: Olsztyn

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


- > Undefined offset ..

Nie działa kolego (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





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

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


SOA#1
Dziwne, u mnie działa.

  1. <?php
  2.  
  3. $tekst = '<div class="leftcolumn">a tutaj cos pisze</div>';
  4.  
  5. preg_match('#<div class="leftcolumn">(.*)</div>#', $tekst, $matches);
  6.  
  7. print_r($matches);
  8.  
  9. ?>

Go to the top of the page
+Quote Post
Kruq
post
Post #6





Grupa: Zarejestrowani
Postów: 56
Pomógł: 2
Dołączył: 8.02.2004
Skąd: Olsztyn

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


Cytat(fifi209 @ 11.01.2010, 01:50:39 ) *
SOA#1
Dziwne, u mnie działa.

  1. <?php
  2.  
  3. $tekst = '<div class="leftcolumn">a tutaj cos pisze</div>';
  4.  
  5. preg_match('#<div class="leftcolumn">(.*)</div>#', $tekst, $matches);
  6.  
  7. print_r($matches);
  8.  
  9. ?>


No ten przykladzik tez mi dziala , ale jak pobieram stronke to juz nie dziala pomimo ze ten div jest taki sam ;/ nie czaje

Podam wszystko dokladnie moze cos mi sie kreci w glowce ;/
  1. <?php
  2. $plik = file_get_contents('http://www.polskikosz.pl/mecz/10416/zts_nowy_dwor_gdanski_vs_inter_parts_azs_uwm_olszt.html');
  3.  
  4. preg_match('#<div class="leftcolumn">(.*)</div>#',$plik, $znalezione);
  5.  
  6.  
  7. print_r ($znalezione);
  8.  
  9.  
  10. ?>


Nawet jak zrobie
  1.  
  2. preg_match('#<head>(.*)</head>#', $plik, $znalezione);

To wywala mi pusta tablice po print_r ... OCB (IMG:style_emoticons/default/questionmark.gif)

Ten post edytował Kruq 11.01.2010, 00:49:21
Go to the top of the page
+Quote Post
Fifi209
post
Post #7





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

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


bo są tam znaki nowych linii, w dodatku pierwsze zamknięcie diva jest zaraz na początku.

  1. <div class="leftcolumn">
  2. <div class="header-white-border-bottom">
  3. <h1>Mecz: ŻTS Nowy Dwór Gdański vs. Inter Parts AZS UWM Olsztyn (09.01.2010)</h1>
  4.  
  5. </div>


Ogólnie mały problemik. (IMG:style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
Kruq
post
Post #8





Grupa: Zarejestrowani
Postów: 56
Pomógł: 2
Dołączył: 8.02.2004
Skąd: Olsztyn

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


Cytat(fifi209 @ 11.01.2010, 03:14:04 ) *
Ogólnie mały problemik. (IMG:style_emoticons/default/haha.gif)


No to poległem ...
Go to the top of the page
+Quote Post
aart3k
post
Post #9





Grupa: Zarejestrowani
Postów: 72
Pomógł: 10
Dołączył: 2.02.2008
Skąd: Kraków

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


Możesz to obejść odpowiednio zliczając ile jest otwieranych divów poza tamtym divem - explodujesz po "<div> zliczasz kawałki, aż wystąpi kawałek zawierający </div> - później na tej podstawie będziesz wiedział ile divów połączyć w jeden.

Trochę to zagmatwane, ale jak się zastanowisz, to osiągniesz to czego potrzebujesz (IMG:style_emoticons/default/winksmiley.jpg)

Łatwiej jak jest coś charakterystycznego poza tym krańcowym divem, wtedy możesz to dołączyć do wyrażenia reg. na samym końcu.

PS. Nowe linie możesz wyciągać czymś takim: <div>(?<tekst>(.|\s)*)</div>







Go to the top of the page
+Quote Post
Mustava
post
Post #10





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 2.03.2009

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


A może wystarczy to:
  1. <?php
  2. $plik = file_get_contents('http://www.polskikosz.pl/mecz/10416/zts_nowy_dwor_gdanski_vs_inter_parts_azs_uwm_olszt.html');
  3.  
  4. preg_match_all('/<h1>(.*)<\/h1>/',$plik, $znalezione);
  5. $znalezione=$znalezione[1][0];
  6.  
  7. print_r ($znalezione);
  8. ?>
Go to the top of the page
+Quote Post
Kruq
post
Post #11





Grupa: Zarejestrowani
Postów: 56
Pomógł: 2
Dołączył: 8.02.2004
Skąd: Olsztyn

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


no nie do konca , bo pobierasz tylko ze znacznikow <h1> a mi chodzi o cala zawartosc <div class="leftcolumn">,
tzn te tabelki co tam sa .. :Dwiec troszke kombinowania przedemna bo widze, ze nie ma za bardzo pomyslow (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował Kruq 11.01.2010, 22:22:14
Go to the top of the page
+Quote Post
Mustava
post
Post #12





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 2.03.2009

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


To może to Cię urządza:
  1. preg_match('/<div class\=\"leftcolumn\"\>(.*|\s)<\/div>+[\s]+<a href=\"http\:\/\/www\.jamel\.pl\/\"/s',$plik, $znalezione);
Go to the top of the page
+Quote Post
Kruq
post
Post #13





Grupa: Zarejestrowani
Postów: 56
Pomógł: 2
Dołączył: 8.02.2004
Skąd: Olsztyn

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


no i elegancko ... wykorzystałem Twój pomysł, troszkę przerobiłem go i wyłuskałem ze strony to co mi potrzebne tzn dwie tabele ze statystykami z meczu :-)

Dzięki wielkie ...

Jeszcze jedno pytanko ... odnośnie [\s] co to robi (IMG:style_emoticons/default/biggrin.gif) ?

Ten post edytował Kruq 13.01.2010, 02:10:43
Go to the top of the page
+Quote Post
Fifi209
post
Post #14





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

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


Ciężko poszukać?
http://pl.php.net/manual/en/regexp.reference.backslash.php
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: 22.08.2025 - 22:33