Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobieranie danych z JSON
Forum PHP.pl > Forum > Przedszkole
ratusz
Witam, potrzebuje pomocy, ponieważ potrzebuje dane informacje z tego linków które wyglądają podobnie do link, i potrzebuje danych które są zawarte w "median_price", mój skrypt wygląda następująco (wszystkie linki są pobierane z bazy).
  1. while($pojedynczy = $object->fetch_assoc()){
  2. $link = $pojedynczy['link'];
  3. $page = file_get_contents($link);
  4. preg_match('/\,"\median\_price\"\:\"\$\.+\"\}\//', $page, $matches);
  5. $cena = str_replace(array('"median_price":"','"}', "$"), "", $matches);
  6. $new1 = round($cena[0]*3.6*1.25/0.79*100, -2);
  7. $sql = "UPDATE `{$TABLE}` SET `cena` = {$new} WHERE `id` = {$pojedynczy['id']} LIMIT 1";
  8. $db->query($sql) or die("Database ERROR");
  9. }


Pozdrawiam i dziękuje za wszystkie udzielone odpowiedzi.
KsaR
$arr=json_decode(file_get_contents(...), 1);
print_r($arr); //arr zawiera teraz zwykla php-ową tablice.
ratusz
napotkałem kolejny problem, kod który używam to
  1. while($pojedynczy = $object->fetch_assoc()){
  2. $link = $pojedynczy['link'];
  3. $arr=json_decode(file_get_contents($link), 1);
  4. print_r($arr);
  5. preg_match("/\[median\_price\] => $.+\ )/", $arr, $matches);
  6. $cena = str_replace(array("[median_price] => "," ) ", "$"), "", $matches);
  7. $new = round($cena[0]*3.6*1.25/0.79*100, -2);
  8. $sql = "UPDATE `{$TABLE}` SET `cena` = {$new} WHERE `id` = {$pojedynczy['id']} LIMIT 1";
  9. $db->query($sql) or die("Database ERROR");
  10. }

Wyskakują mi błędy, nie mogę się z nimi uporać, a wujek google odprowadza do angielskich stron, z których nic nie potrafię wywnioskować. Błędy można zobaczyć pod tym linkiem.
http://dota2skins.pl/update/update.php
KsaR
Cytat(ratusz @ 6.01.2015, 15:19:39 ) *
napotkałem kolejny problem, kod który używam to
  1. while($pojedynczy = $object->fetch_assoc()){
  2. $link = $pojedynczy['link'];
  3. $arr=json_decode(file_get_contents($link), 1);
  4. print_r($arr);
  5. preg_match("/\[median\_price\] => $.+\ )/", $arr, $matches);
  6. $cena = str_replace(array("[median_price] => "," ) ", "$"), "", $matches);
  7. $new = round($cena[0]*3.6*1.25/0.79*100, -2);
  8. $sql = "UPDATE `{$TABLE}` SET `cena` = {$new} WHERE `id` = {$pojedynczy['id']} LIMIT 1";
  9. $db->query($sql) or die("Database ERROR");
  10. }

Wyskakują mi błędy, nie mogę się z nimi uporać, a wujek google odprowadza do angielskich stron, z których nic nie potrafię wywnioskować. Błędy można zobaczyć pod tym linkiem.
http://dota2skins.pl/update/update.php

To moze przejdz kurs php od początku (tablice)
print_r zwraca tablice do wyswietlenia, dzieki jej wiadomo jak sie odwolac, nie trzeba zadnego str_replace.
Jesli chcesz wartosc [median_price]
Piszesz: $arr['median_price'];
ratusz
Teraz strona wyskakuje z błędem ponieważ w zmienej jest zawarty znak dolara, nie mam pojęcia jak go usunąć, str_replace nie działa, zmiana typu zmiennej także, jakieś nakierowania?

  1. while($pojedynczy = $object->fetch_assoc()){
  2. $link = $pojedynczy['link'];
  3. $arr=json_decode(file_get_contents($link), 1);
  4. $cena1= $arr['median_price'];
  5. $cena = (string) $cena1;
  6. $string = str_replace('$', '', $cena);
  7. echo $string;


Co robić panie władzo? podany skrypt nie usuwa $.
Na stronie wyświetla się to tak.
$1,35$1.58$7.22$0.86$0.71$1.67$4.67
Pyton_000
bo to nie $ tylko
Kod
& #36;

bez spacji
ratusz
Dzięki, działa!

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.