Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Pobranie obrazka z strony www
kuci
post 19.02.2016, 21:17:55
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.02.2016

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


Witajcie mój skrypt pobiera dane z strony steam pobiera cene danej brony z gry cs:go oraz pobiera również mediane cen. Ten skrypt jest ubogi aby zadziałał trzeba wpisać całą nazwe broni. np:
P2000 | Fire Elemental

testowa strona:
http://m8.esy.es/trade/test.php

i teraz o co mi chodzi ? chce aby do tego skryptu dodać obrazek danej broni
obrazek musi zostać pobrany też ze strony steam: np.
https://steamcommunity.com/market/listings/...Field-Tested%29
i obrazek jest w divie <div class="market_listing_largeimage"> (mysle o file_get_content)

jeszcze raz wytłumaczę, gdy wpisze nazwę broni w inpuciei to ma się dodatkowo do rezultatu pojawić obrazek tej broni którą wpisałem.. Nie wiem jak dodać to do kodu

test.php
  1. <html>
  2. <head>
  3. </head>
  4.  
  5. <body>
  6.  
  7. <form action="search.php" method="get">
  8. <input type="text" name="aaa" value="">
  9. <input type="submit" >
  10. </form>
  11.  
  12. </body>
  13. </html>

search.php
  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="UTF-8">
  4. </head>
  5. <body>
  6.  
  7. <form action="test.php" method="get">
  8. <input type="text" name="aaa" value="">
  9. <input type="submit" >
  10. </form>
  11.  
  12.  
  13.  
  14. <?php
  15.  
  16.  
  17. $items = [$_GET['aaa'] . ' (Field-Tested)', $_GET['aaa'] . ' (Battle-Scarred)', $_GET['aaa'] . ' (Well-Worn)', $_GET['aaa'] . ' (Factory New)', $_GET['aaa'] . ' (Minimal Wear)'];
  18.  
  19.  
  20. foreach($items as $item)
  21. {
  22. $json = json_decode(file_get_contents('http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name='.rawurlencode($item)), true);
  23.  
  24. if($json['success'] == false OR empty($json))
  25. {
  26. printf('<p><strong>%s</strong></p><ul><li>Najniższa cena: --</li><li>Średnia cena: --</li></ul>', $item);
  27. }
  28. else {
  29. // Dopisane
  30. $najm = str_replace("--", "00", $json['lowest_price']);
  31. $med = str_replace("--", "00", $json['median_price']);
  32. //$med = $json['median_price'];
  33. // koniec
  34. printf('<p><strong>%s</strong></p><ul><li>Najniższa cena: %s</li><li>Średnia cena: %s</li></ul>', $item, $najm, $med);
  35. }
  36. }
  37. ?>
  38. </body>
  39. </html>


serdecznie dziękuje za odpowiedzi, pozdrawiam hej

Ten post edytował kuci 19.02.2016, 21:18:47
Go to the top of the page
+Quote Post
gorden
post 20.02.2016, 00:48:22
Post #2





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

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


http://steamcommunity.com/market/priceover...(Factory%20New)
zwraca
Kod
{"success":true,"lowest_price":"10,65\u20ac","volume":"77","median_price":"10,62\u20ac"}



Nie wyczarujemy Ci obrazka, jeśli go nie zwraca serwer steam przy Twoim zapytaniu. Jedyna opcja to wchodzić na stronę sklepu (nie api) i szukać obrazka. Ewentualnie jakieś zewnętrzne API, zgaduję, że coś takiego istnieje.
Go to the top of the page
+Quote Post
kuci
post 20.02.2016, 10:51:24
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.02.2016

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


Cytat(gorden @ 20.02.2016, 00:48:22 ) *
http://steamcommunity.com/market/priceover...(Factory%20New)
zwraca
Kod
{"success":true,"lowest_price":"10,65\u20ac","volume":"77","median_price":"10,62\u20ac"}



Nie wyczarujemy Ci obrazka, jeśli go nie zwraca serwer steam przy Twoim zapytaniu. Jedyna opcja to wchodzić na stronę sklepu (nie api) i szukać obrazka. Ewentualnie jakieś zewnętrzne API, zgaduję, że coś takiego istnieje.


no dobrze ale ja obrazek chciałem pobrać z innej strony https://steamcommunity.com/market/listings/...Field-Tested%29
i na tej stronie jest div w którym jest obrazek i ja chciałem zrobić tak że użyje file_get_content https://steamcommunity.com/market/listings/730/ a tu wrzuce tą zmienną items bo przecież tu jest ta nazwa broni.
Go to the top of the page
+Quote Post
kajzur
post 20.02.2016, 17:49:43
Post #4





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

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


Użyj tego - http://simplehtmldom.sourceforge.net/


--------------------
Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
Go to the top of the page
+Quote Post
kuci
post 20.02.2016, 22:53:11
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.02.2016

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


Cytat(kajzur @ 20.02.2016, 17:49:43 ) *


a jak zrobić aby link w file get_html po / wczytywał zmienną $items
dla przykładu

$items = [$_GET['aaa']

$html = file_get_html('http://www.google.com/tutaj ta zmienna $items'); jak to poprawnie zrobić?
  1. // Create DOM from URL or file
  2. $html = file_get_html('http://www.google.com/');
  3.  
  4. // Find all images
  5. foreach($html->find('img') as $element)
  6. echo $element->src . '<br>';
  7.  
  8. // Find all links
  9. foreach($html->find('a') as $element)
  10. echo $element->href . '<br>';
Go to the top of the page
+Quote Post
gorden
post 21.02.2016, 13:52:24
Post #6





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

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


Dokładnie tak samo, jak to robiłeś z file_get_contents
Go to the top of the page
+Quote Post
kuci
post 21.02.2016, 14:24:24
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.02.2016

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


Cytat(gorden @ 21.02.2016, 13:52:24 ) *
Dokładnie tak samo, jak to robiłeś z file_get_contents

no gdybym ja to pisał to spoko, ale jestem kompletnie zielony.

gdy zrobiłem coś takiego:
  1. <?php
  2.  
  3.  
  4. $items = [$_GET['aaa'] . ' (Field-Tested)', $_GET['aaa'] . ' (Battle-Scarred)', $_GET['aaa'] . ' (Well-Worn)', $_GET['aaa'] . ' (Factory New)', $_GET['aaa'] . ' (Minimal Wear)'];
  5.  
  6.  
  7. foreach($items as $item)
  8. {
  9. $json = json_decode(file_get_contents('http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name='.rawurlencode($item)), true);
  10.  
  11. if($json['success'] == false OR empty($json))
  12. {
  13. printf('<p><strong>%s</strong></p><ul><li>Najniższa cena: --</li><li>Średnia cena: --</li></ul>', $item);
  14. }
  15. else {
  16. // Dopisane
  17. $najm = str_replace("--", "00", $json['lowest_price']);
  18. $med = str_replace("--", "00", $json['median_price']);
  19. //$med = $json['median_price'];
  20. // koniec
  21. printf('<p><strong>%s</strong></p><ul><li>Najniższa cena: %s</li><li>Średnia cena: %s</li></ul>', $item, $najm, $med);
  22. }
  23. }
  24. // Create DOM from URL or file
  25. $html = file_get_html('http://steamcommunity.com/market/listings/730/'.$items);
  26.  
  27. // Find all images
  28. foreach($html->find('img') as $element)
  29. echo $element->src . '<br>';
  30.  
  31. // Find all links
  32. foreach($html->find('a') as $element)
  33. echo $element->href . '<br>';
  34. ?>


to wyskakuje błąd:
Call to undefined function file_get_html() in /home/u393920231/public_html/trade/search.php on line 37

a 37 linia to ta:
$html = file_get_html('http://steamcommunity.com/market/listings/730/'.$items);


i oco kaman,
Go to the top of the page
+Quote Post
gorden
post 21.02.2016, 18:35:40
Post #8





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

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


Przecież masz dokładnie błąd opisany
Cytat
Call to undefined function file_get_html()


Odwołujesz się do nieistniejącej funkcji file_get_html. Jest ona zdefiniowana w simple_html_dom.php. Musisz najpierw ten plik dołączyć do swojego - użyj include lub require.

Oprócz tego $items to tablica, także nie przyłaź tu za chwilę z płaczem, że dalej Ci nie działa.
Go to the top of the page
+Quote Post
kuci
post 21.02.2016, 20:46:45
Post #9





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.02.2016

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


Cytat(gorden @ 21.02.2016, 18:35:40 ) *
Przecież masz dokładnie błąd opisany


Odwołujesz się do nieistniejącej funkcji file_get_html. Jest ona zdefiniowana w simple_html_dom.php. Musisz najpierw ten plik dołączyć do swojego - użyj include lub require.

Oprócz tego $items to tablica, także nie przyłaź tu za chwilę z płaczem, że dalej Ci nie działa.

dlatego zrobiłem dla testu bez zmiennej po prostu tak:

  1. <?php
  2. include 'simple_html_dom.php';
  3.  
  4. $url = "http://steamcommunity.com/market/listings/730/AK-47%20%7C%20Redline%20(Field-Tested)";
  5. $json_content = file_get_contents($url);
  6. $json = json_decode($json_content, true);
  7.  
  8. //then u want to get the information u want from the json
  9.  
  10. echo $json->market_listing_largeimage;
  11. // or do something else with it.
  12. ?>


ale nadal mam błąd:
Notice: Trying to get property of non-object in C:\xampp\htdocs\test.php on line 24

24linia: echo $json->market_listing_largeimage;
to market.. to klasa na tej stronie. powinno mi ją wyświetlić.

domyslam sie ze to nie jest obiekt ale co teraz

PROBLEM ROZWIĄZANY DZIAŁA!>:)

Ten post edytował kuci 22.02.2016, 13:35:58
Go to the top of the page
+Quote Post
StevDefs
post 24.08.2019, 04:02:22
Post #10





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 22.08.2019

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


Propecia Ohne Rezept generic cialis canada Viagra Pills Mexico Propecia Low Testosterone Drug
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.04.2024 - 10:09