Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pobieranie danych ze strony
Dizzy
post 6.02.2009, 12:40:01
Post #1





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 6.09.2008

Ostrzeżenie: (10%)
X----


No więc zrobiłem pobieranie danych ze strony, Oto mój skrypt:
  1. <?php
  2.    // getdata.php
  3.    // by ufo ;)
  4.    // get Tibia character info from tibia.com
  5.    //
  6.    // usage:
  7.    // call this script from some webbrowser giving character name as a GET parameter
  8.    //
  9.    // example:
  10.    // getdata.php?char=Bubble
  11.    // getdata.php?char=Eternal Oblivion
  12.    
  13.    $character = urlencode($_GET[char]);
  14.    
  15.    // patterns
  16.    $name = "|Name:</TD><TD>([^<]+)?</TD>|i";
  17.    $sex = "|Sex:</TD><TD>([^<]+)?</TD>|i";
  18.    $profession = "|Profession:</TD><TD>([^<]+)?</TD>|i";
  19.    $level = "|Level:</TD><TD>([^<]+)?</TD>|i";
  20.    $world = "|World:</TD><TD>([^<]+)?</TD>|i";
  21.    $residence = "|Residence:</TD><TD>([^<]+)?</TD>|i";
  22.    $house = "|House:</TD><TD>([^<]+)?</TD>|i";
  23.    $guild = "|Guild[^<]*?</TD><TD>([^<]+)?<A[^>]*?>([^<]+)?</A></TD>|i";
  24.    $account = "|Account[^<]*?</TD><TD>([^<]+)?</TD>|i";
  25.    
  26.    // get page source
  27.    $page = file_get_contents("http://www.tibia.com/community/?subtopic=characters&name=$character");
  28.    
  29.    // Formatowanie
  30.    
  31.    $dom = "|House:</TD><TD>([^<]+)?</TD>|i";
  32.    $dom = explode(" ");
  33.    // look for matches
  34.    preg_match($name, $page, $name);
  35.    preg_match($sex, $page, $sex);
  36.    preg_match($profession, $page, $profession);
  37.    preg_match($level, $page, $level);
  38.    preg_match($world, $page, $world);
  39.    preg_match($residence, $page, $residence);
  40.    preg_match($house, $page, $house);
  41.    preg_match($guild, $page, $guild);
  42.    preg_match($account, $page, $account);
  43.    
  44.    // show captured data
  45.    echo "Character name: [". $name[1] ."]<br>";
  46.    echo "Sex: [". $sex[1] ."]<br>";
  47.    echo "Profession: [". $profession[1] ."]<br>";
  48.    echo "Level: [". $level[1] ."]<br>";
  49.    echo "World: [". $world[1] ."]<br>";
  50.    echo "Residence: [". $residence[1] ."]<br>";
  51.    echo "House: [". ($house[1] == '' ? 'None' : $house[1]) ."]<br>";
  52.    echo "Guild membership: [". ($guild[1] . $guild[2] == '' ? 'None' : $guild[1] . $guild[2]) ."]<br>";
  53.    echo "Account Status: [". $account[1] ."]<br>";
  54.    
  55.    $site="http://erig.net/house/$world[1]/$dom[1]";
  56.    $tekst=file_get_contents($site);
  57.  
  58.    preg_match ('|<IMG SRC="http://static.tibia.com/images/houses/(.*)" WIDTH=150 HEIGHT=150>|U', $tekst, $token);
  59.    echo'<IMG SRC="http://static.tibia.com/images/houses/'.$token[1].'" WIDTH=150 HEIGHT=150>';
  60.        
  61. ?>
  62.  
  63.  
  64. <a href="#" onmouseover="return escape('<img src=http://static.tibia.com/images/houses/house_50201.jpg width=192 height=192>')">Castle Street 1 </a>
  65. <script language="JavaScript" type="text/javascript" src="wz_tooltip.js"></script>


I chce by pobierało adres obrazka domQu lecz niestety niewiem jak zrobic by pobierało adres obrazka tzn:
<img src=http://static.tibia.com/images/houses/house_50201.jpg width=192 height=192>')">
Obrazek ma pobierac z :
http://erig.net/house/Empera/CastleStreet1
Lecz niestety po wejsciu na tą strone przekiorywuje na inną :-/
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
wookieb
post 6.02.2009, 12:46:42
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No włąsnie. File_get_contents tego nei zalatwi. Musisz użyc curla z opcja
CURLOPT_FOLLOWLOCATION
http://pl.php.net/manual/pl/function.curl-setopt.php
Spowoduje to, że jeżeli bedzize jakieś przekierowanie to odczyta strone z przekierowania.
Tutoriali do curla jest sporo. Chociażby na php.pl i nat ym forum też



// BTW nei zauwazylem ze masz juz podobny temat

Ten post edytował wookieb 6.02.2009, 12:47:18


--------------------
Go to the top of the page
+Quote Post
Dizzy
post 6.02.2009, 12:48:49
Post #3





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 6.09.2008

Ostrzeżenie: (10%)
X----


Tylko jak to zastosować... :-/
Go to the top of the page
+Quote Post
wookieb
post 6.02.2009, 12:52:05
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No i zastosować curla TAK jak się go stosuje. W linku który ci podałem masz w c... przykładów
zapomniales jeszcze poprawic
Kod
preg_match ('|<IMG SRC="http://static.tibia.com/images/houses/(.*?)" WIDTH=150 HEIGHT=150>|U', $tekst, $token);


Ten post edytował wookieb 6.02.2009, 12:55:05


--------------------
Go to the top of the page
+Quote Post
Dizzy
post 6.02.2009, 12:58:20
Post #5





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 6.09.2008

Ostrzeżenie: (10%)
X----


Może napisał byc tu któryś z przykładów który będę mógł zastosować ?
Go to the top of the page
+Quote Post
wookieb
post 6.02.2009, 12:59:28
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie. Bo nie zepsuło mi się kopiowanie i nie moge ci wkleić kodów z http://pl.php.net/manual/pl/function.curl-setopt.php
Wiec może przeczytasz tą stronę i chociaż SPRÓBUJESZ coś zrobic?


--------------------
Go to the top of the page
+Quote Post
Dizzy
post 6.02.2009, 13:12:29
Post #7





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 6.09.2008

Ostrzeżenie: (10%)
X----


Słabo znam angielski niestety ...
Go to the top of the page
+Quote Post
wookieb
post 6.02.2009, 13:16:05
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat
Tutoriali do curla jest sporo. Chociażby na php.pl i na tym forum też


A php.pl jest po polsku


--------------------
Go to the top of the page
+Quote Post
Dizzy
post 6.02.2009, 13:18:46
Post #9





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 6.09.2008

Ostrzeżenie: (10%)
X----


Nic z tego nie rozumiem O_o.
(Chodzi o CURL)
Go to the top of the page
+Quote Post
wookieb
post 6.02.2009, 13:22:14
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Wiec przykro mi. Masz pecha. Albo się wysilisz i przeczytasz http://wortal.php.pl/phppl/wortal/artykuly...pierwszy_skrypt ALBO przejrzysz to forum. Rusz dupe.

Poza tym piszesz ze słabo znasz angielski. A komentarze do twojego skryptu (szczegolnie te u góry) to tez pewnie "zrobiłeś" sam?

Ten post edytował wookieb 6.02.2009, 13:22:37


--------------------
Go to the top of the page
+Quote Post
Dizzy
post 6.02.2009, 13:25:15
Post #11





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 6.09.2008

Ostrzeżenie: (10%)
X----


Czy to mi pomoze?
  1. <?php
  2. $ch = curl_init('http://localhost/curl/site.php');
  3. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  4. echo curl_exec($ch);
  5. curl_close($ch);
  6. ?>


Ten post edytował Dizzy 6.02.2009, 13:25:33
Go to the top of the page
+Quote Post
wookieb
post 6.02.2009, 13:27:00
Post #12





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A spróbowałeś to odpalić??
A wiesz co jest w linku? http://localhost/curl/site.php
I błagam cie... Nie pisz, ze TY zrobiłeś skrypt z pierwszego postu

I jeszcze jedna prośba. Wykaż się naprawdę odrobiną samodzielności. Naprawdę nie sprawia mi przyjemności atakowanie cie, że jesteś leniem, ze podszywasz się pod czyjąś pracę i w ogóle. O wiele lepiej pomaga się osobie która NAPRAWDĘ coś zrobi w temacie a nie wklei byle coś i żebra "zróbcie mi" posługując się dennymi wymówkami typu "nie znam angielskiego", "nie rozumiem" tym bardziej, że jest na ten temat w cholere tutoriali.

Ten post edytował wookieb 6.02.2009, 13:29:34


--------------------
Go to the top of the page
+Quote Post
Dizzy
post 6.02.2009, 13:30:10
Post #13





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 6.09.2008

Ostrzeżenie: (10%)
X----


wookieb, wiem co jest w linku ;] ...
No skrypt nie ja zrobiłem ale zmodyfikowałem w dużym stopniu...

Zadając to pytanie chciałem się dowiedzieć czy jest dobra struktura skryptu ;s
Go to the top of the page
+Quote Post
wookieb
post 6.02.2009, 13:31:56
Post #14





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Zależy jak patrzeć. Doszedłes w końcu jak działa curl? Odpaliłeś parę przykładów z linków, które ci podałem?


--------------------
Go to the top of the page
+Quote Post
Dizzy
post 6.02.2009, 13:35:29
Post #15





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 6.09.2008

Ostrzeżenie: (10%)
X----


Takkk tongue.gif
Tylko teraz muszę zrobić:
  1. <?php
  2. $site="http://erig.net/house/$world[1]/$dom[1]";
  3.    $tekst=file_get_contents($site);
  4.  
  5.    $ch = curl_init('$site');
  6.          curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  7.    echo curl_exec($ch);
  8.         curl_close($ch);
  9.        
  10.  
  11.    preg_match ('|<IMG SRC="http://static.tibia.com/images/houses/(.*?)" WIDTH=150 HEIGHT=150>|U', $tekst, $token);
  12.    echo'<IMG SRC="http://static.tibia.com/images/houses/'.$token[1].'" WIDTH=150 HEIGHT=150>';
  13. ?>

Musi pobierac '.$token[1].' (Adres obrazka)
Go to the top of the page
+Quote Post
wookieb
post 6.02.2009, 13:38:26
Post #16





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Po co ci?
  1. <?php
  2. $tekst=file_get_contents($site);
  3. ?>


  1. <?php
  2. $ch = curl_init('$site');
  3. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  5. $tekst=curl_exec($ch);
  6. curl_close($ch);
  7. ?>


Ten post edytował wookieb 6.02.2009, 13:38:59


--------------------
Go to the top of the page
+Quote Post
Dizzy
post 6.02.2009, 13:46:15
Post #17





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 6.09.2008

Ostrzeżenie: (10%)
X----


Teraz jeszcze tylko aby pobierało adres obrazka... ;/
Go to the top of the page
+Quote Post
wookieb
post 6.02.2009, 13:50:54
Post #18





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A to zobacz sobie co masz w $tekst i jak to sie przerzuca na twoje wyrażenie regularne.


--------------------
Go to the top of the page
+Quote Post
Dizzy
post 6.02.2009, 13:53:02
Post #19





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 6.09.2008

Ostrzeżenie: (10%)
X----


No tak ale adres wygląda w ten sposób:
http://static.tibia.com/images/houses/house_50201.jpg

A więc :
<IMG SRC="http://static.tibia.com/images/houses/'.$token[1].'" WIDTH=150 HEIGHT=150>

I $token musi zostac pobrany ... ;/
Go to the top of the page
+Quote Post
wookieb
post 6.02.2009, 13:56:35
Post #20





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Ale CZY(?!) sprawdziłeś co jest w $tekst?
Echem, var_dumpem czy tez inna funkcja?


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 14.08.2025 - 09:15