Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Curl - filtrowanie zawartości strony
busyboy
post 7.01.2012, 23:57:57
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Witam

Mam pytanko odnosnie filtrowania wyniku dzialania curl. Czy mozna jakosc filtrowac wynik ktory zostaje wywolany za pomoca :

  1. curl_exec($ch)


Chodzi mi o wyciaganie kontretnych danych np adresu www na wyswietlonej stronie.

Pozdrawiam
BusyBoy
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
gorden
post 8.01.2012, 00:13:29
Post #2





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


nagłówki? curl_getinfo + CURLINFO_HTTP_CODE
a jeśli chodzi Ci o treść to zapisz curl_exec do zmiennej i użyj np. wyrażeń regularnych

Ten post edytował gorden 8.01.2012, 00:15:32
Go to the top of the page
+Quote Post
Pawel_W
post 8.01.2012, 01:20:10
Post #3





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


zainteresuj się CURLOPT_RETURNTRANSFER
Go to the top of the page
+Quote Post
busyboy
post 8.01.2012, 20:51:47
Post #4





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Zrobilem cos takiego :

  1. $html = curl_exec($ch);
  2. curl_close($ch);
  3.  
  4. preg_match_all('#<title>(.*)<title>#sUi', $html, $text, PREG_PATTERN_ORDER);
  5. echo $text[1][0];


Wywala mi blad sad.gif

  1. Notice: Undefined offset: 0 in
Go to the top of the page
+Quote Post
piotrooo89
post 8.01.2012, 21:13:16
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




na początek zrób:

  1. print_r($text);


--------------------
Go to the top of the page
+Quote Post
cycofiasz
post 8.01.2012, 21:18:03
Post #6





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


A nie czasami

  1. <title>(.*)</title>


?
Go to the top of the page
+Quote Post
busyboy
post 8.01.2012, 22:19:13
Post #7





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Cytat(piotrooo89 @ 8.01.2012, 23:13:16 ) *
na początek zrób:

  1. print_r($text);


Po wpisaniu powyzszego kodu wyswietla mi

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

Go to the top of the page
+Quote Post
piotrooo89
post 8.01.2012, 22:41:22
Post #8


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




no więc widzisz, że Twoje wyrażenie nie działa. spróbuj zastosować to co podał @cycofiasz.


--------------------
Go to the top of the page
+Quote Post
busyboy
post 8.01.2012, 23:01:31
Post #9





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Sorki ale w tej kwestii jestem straszna noga sad.gif po wprowadzeniu tego wyrazenia mam kolejny blad

  1. preg_match_all ('<title>(.*)</title>', $html, $text, PREG_PATTERN_ORDER);
  2. print_r($text);


  1. Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '('
Go to the top of the page
+Quote Post
piotrooo89
post 8.01.2012, 23:09:44
Post #10


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




no ale to już podstawy podstaw, weź poczytaj o tym.

Kod
'#<title>(.*)</title>#'


--------------------
Go to the top of the page
+Quote Post
busyboy
post 8.01.2012, 23:33:24
Post #11





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Nie wiem w jakiej formie sa zapisywane dane do zmiennej $html ale caly czas mam :

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


Kod jest naspeujacy

  1. $html = curl_exec($ch);
  2. curl_close($ch);
  3.  
  4. preg_match_all ('#<title>(.*)</title>#', $html, $text, PREG_PATTERN_ORDER);
  5. print_r($text);


Moge prosic o jakies wskazowki ?
Go to the top of the page
+Quote Post
cycofiasz
post 8.01.2012, 23:40:33
Post #12





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Będziemy się tak bawić w kotka i myszkę? Podaj całość kodu, łącznie z adresami z których pobierasz dane. Upewnij się że w $html jest źródło strony zawietające <title>coś</title>
Go to the top of the page
+Quote Post
piotrooo89
post 9.01.2012, 09:07:31
Post #13


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




i pokaż od razu co masz w zmiennej $html.


--------------------
Go to the top of the page
+Quote Post
busyboy
post 9.01.2012, 14:42:03
Post #14





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


Calość kodu ponizej :

  1. <?php
  2. $config['address'] = 'http://www.poczta.wp.pl';
  3.  
  4. $path['cookie'] = dirname(__FILE__).'/cookies.txt';
  5.  
  6. $ch = curl_init($config['address'].'');
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
  8. curl_setopt($ch, CURLOPT_HEADER, true);
  9. curl_setopt($ch, CURLOPT_COOKIEFILE, $path['cookie']);
  10. curl_setopt($ch, CURLOPT_COOKIEJAR, $path['cookie']);
  11.  
  12. $html = curl_exec($ch);
  13. curl_close($ch);
  14.  
  15. preg_match_all ('#<title>(.*?)</title>#', $html, $text, PREG_PATTERN_ORDER);
  16. print_r($text);
  17. ?>


Przepraszam ze tak nie odrazu zamiescilem calosci. Moze teraz bedzie jasniej.
Go to the top of the page
+Quote Post
piotrooo89
post 9.01.2012, 14:47:27
Post #15


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




ale co masz w zmiennej $html?


--------------------
Go to the top of the page
+Quote Post
busyboy
post 9.01.2012, 15:05:26
Post #16





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

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


W zmiennej $html po wyswietleniu za pomoca

  1. echo $html;


jest wyswietlona wartosc 1 - nic wiecej.
Go to the top of the page
+Quote Post
Pawel_W
post 9.01.2012, 15:55:32
Post #17





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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



curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);

Boże, widzisz i nie grzmisz... smile.gif
Go to the top of the page
+Quote Post
cycofiasz
post 9.01.2012, 16:29:35
Post #18





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Na dodatek http://www.poczta.wp.pl robi przekierowanie a on nie dodał CURLOPT_FOLLOWLOCATION...

Człowieku, zabierasz się do tego od pupy strony! Najpierw naucz się poprawnie pobierać strony do zmiennych, później dopiero je parsuj...


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: 19.07.2025 - 19:56