Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][json] Zczytanie odpowiedzi strony, Przypisanie odpowiedzi wywołanej strony do zmiennych
amatorzphp
post
Post #1





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

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


Cześć,

Mam następujący problem: napisałem większy skrypt, który na zapytanie:

https:// adres12345. pl/wsZrobSwoje.php?zmienna1=wartosc1&zmienna2=wartosc2 // spacje zrobione w adresie, żeby na forum się dobrze wyświetlało

Prawidłowo zwraca następujące możliwe odpowiedzi:

[{"zmienna3":"wartosc3","zmienna4":"wartosc4"}] // powstaje przez "return print json_encode($rows);"
lub
[{"zmienna3":"wartosc3","zmienna5":"wartosc5","zmienna6":"wartosc6","zmienna7":"wartosc7"}] // powstaje przez "return print json_encode($rows);"
lub
Odpowiedz_tekstowa_w_przypadku_bledu

(wyświetla je na stronie - jak otworzę przez przeglądarkę to tak się to wyświetli)

PROBLEM:

Chciałbym w innym pliku, móc skorzystać z tego skryptu.

Logika mówi tak:

$czytajZmienne = https:// adres12345. pl/wsZrobSwoje.php?zmienna1=wartosc1&zmienna2=wartosc2 ;
// spacje zrobione w adresie, żeby na forum się dobrze wyświetlało

Ale nie działa...

Perfekcyjne rozwiązanie to takie, które te parametry zrzucałoby do tablicy asocjacyjnej
$tablica["komunikat"] = "w_przypadku_zwrocenia_stringa";
$tablica["zwrocona_zmienna1"] = "wartosc1";
$tablica["zwrocona_zmienna2"] = "wartosc2";
itd.


Serdeczna prośba o pomoc. Z góry dziękuję.

Ten post edytował amatorzphp 6.04.2019, 09:14:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
amatorzphp
post
Post #2





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

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


Sukces

Wpis bardziej dla kolejnych poszukujących rozwiązań.

Nie wiem co się zmieniło przez noc, ale działa - i to po pierwszej pętli - druga daje te same wyniki, więc chyba jest zbędna:

  1. echo "<br>07.04.2019: ";
  2. $arr2 = json_decode($zmienna, true);
  3. foreach ($arr2 as $k=>$v){
  4. echo "pierwszy for each: ".$v."<br>"; // zwraca słowo "Array"
  5. echo "petla1 zmienna1: ".$v['kolumna1']."<br>"; // zwraca zmienną i wartość poprawnie
  6. echo "petla1 zmienna2: ".$v['kolumna2']."<br>"; // zwraca zmienną i wartość poprawnie
  7. echo "petla1 zmienna3: ".$v['kolumna3']."<br>"; // zwraca zmienną i wartość poprawnie
  8. echo "petla1 zmienna4: ".$v['kolumna4']."<br>"; // zwraca zmienną i wartość poprawnie
  9.  
  10. foreach ($arr2 as $k2=>$v2){ // zwraca słowo "Array"
  11. echo "petla2 zmienna1: ".$v2[kolumna1']."<br>"; // zwraca zmienną i wartość poprawnie
  12. echo "petla2 zmienna2: ".$v2['kolumna2']."<br>"; // zwraca zmienną i wartość poprawnie
  13. echo "petla2 zmienna3: ".$v2['kolumna3']."<br>"; // zwraca zmienną i wartość poprawnie
  14. echo "petla2 zmienna4: ".$v2['kolumna4']."<br>"; // zwraca zmienną i wartość poprawnie
  15. }
  16. }


Pozostał tylko problem jeśli skrypt nagle nie zwróci Jsona tylko łańcuch znaków.
Funkcja, która zwykle daje wynik w postaci jsona, może dawać komunikat błędu, co daje:

  1. return print "Treść komunikatu błędu";



1. Jak tą linijkę zamienić na Jsona, żeby powyższa funkcja mogła ją wyświetlić?
2. Jak się wtedy do niej odwołać?

Pytam i odpowiadam (IMG:style_emoticons/default/biggrin.gif)

1.

  1. return print json_encode("Komunikat błędu");


2.

  1. echo "Komunikat błędu :".$arr2."<br>";



A teraz jak rozróżnić, czy jsona zrobiono ze stringa czy z wielu wartości (w sensie, że to tablica asocjacyjna)? - samo foreach kiedy mamy pojedyńczy string zwraca błąd

Jak na moje, to potrzebna jest funkcja typu: "czy_tablica_asocjacyjna(arr2)" // tak/nie
i wtedy albo robię tak:

  1. echo $v2['kolumna1']


albo tak:

  1. echo $arr2;



Dla dwóch wartości wygląda to tak:

var_dump(json_decode($zmienna, true));
// array(1) { [0]=> array(4) { ["kolumna1"]=> string(17) "wartosc1" ["kolumna2"]=> string(10) "wartosc2" ["kolumna3"]=> string(19) "wartosc3" ["kolumna4"]=> string(19) "wartosc4" } }
// string(34) "Komunikat błędu"

Odpowiedź:

  1. is_array($tablica)


Temat zakończony.
Serdeczne podziękowania dla użytkownika viking



@Kshyhoo
Drogi Użytkowniku / Opiekunie.
Większy autorytet ma się pomagając niż utrudniając zdobywanie wiedzy na tym forum, zamykając kolejne wątki merytoryczne, które otwierałem aby podzielić problem na części pierwsze.
Jak możesz w wątku przeczytać również odpowiadam merytorycznie i opisuję co i jak zrobiłem, że zadziałało.
Tamten wątek zamknąłeś, więc piszę tutaj.
Ten wątek uważam merytorycznie za zakończony - szkoda m tylko, że z taką zaciekłością jak pilnowanie czy ktoś nie otworzył wątku za dużo, nie pomagasz.

Najlepiej bierz przykład z użytkownika viking - czysta merytoryka i chęć pomocy - chyba taka jest idea tego forum, prawda?

Pomijam już kwestię wycieczek personalnych.
Zamiast wycieczek personalnych typu http://forum.php.pl/index.php?showtopic=262589


Ten post edytował amatorzphp 7.04.2019, 07:31:33
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Cytat(amatorzphp @ 7.04.2019, 10:11:26 ) *
@Kshyhoo
Drogi Użytkowniku / Opiekunie.
Większy autorytet ma się pomagając niż utrudniając zdobywanie wiedzy na tym forum, zamykając kolejne wątki merytoryczne, które otwierałem aby podzielić problem na części pierwsze.
Jak możesz w wątku przeczytać również odpowiadam merytorycznie i opisuję co i jak zrobiłem, że zadziałało.
Tamten wątek zamknąłeś, więc piszę tutaj.
Ten wątek uważam merytorycznie za zakończony - szkoda m tylko, że z taką zaciekłością jak pilnowanie czy ktoś nie otworzył wątku za dużo, nie pomagasz.

Najlepiej bierz przykład z użytkownika viking - czysta merytoryka i chęć pomocy - chyba taka jest idea tego forum, prawda?

Pomijam już kwestię wycieczek personalnych.
Zamiast wycieczek personalnych typu http://forum.php.pl/index.php?showtopic=262589

Zakładając konto, potwierdziłeś przestrzeganie regulaminu, więc go przestrzegaj...
Nie mam takiej wiedzy jak Viking, więc nie mogę w żaden sposób pomóc, ale mam obowiązki wynikające z nadanej mi rangi Opiekuna, z której się należycie wywiązuję.

P.S. to Forum umiera, więc nie spodziewaj się szybkiej pomocy, Admini tu nie zaglądają, Modzi są sporadycznie. Niemniej jednak regulamin Forum wciąż obowiązuje wraz z punktem o jednym wątku dotyczącym jednego problemu... i tyle na temat.
Go to the top of the page
+Quote Post

Posty w temacie
- amatorzphp   [PHP][json] Zczytanie odpowiedzi strony   6.04.2019, 08:44:47
- - viking   W najprostszej postaci file_get_contents.   6.04.2019, 10:24:53
- - amatorzphp   Dziękuję viking za zainteresowanie problemem. W p...   6.04.2019, 10:57:01
- - viking   https://stackoverflow.com/questions/2614870...code...   6.04.2019, 11:27:26
- - amatorzphp   Nie, hosting (nie dedyk) jest na nazwa.pl W linku...   6.04.2019, 12:58:18
- - zdun   "Dolączył dzisiaj" heehe I tak kolorowan...   6.04.2019, 13:23:35
- - amatorzphp   Wcześniej mnie tu nie było, więc nie mam porównani...   6.04.2019, 13:30:42
- - viking   Generalnie zależy co chcesz zwrócić. Jeśli masz ta...   6.04.2019, 13:44:49
- - amatorzphp   Strukturę / typ odpowiedzi mam jak poniżej: [{...   6.04.2019, 14:21:25
- - viking   Tak jak ci mówiłem - zwróć uwagę na 2 argument fun...   6.04.2019, 19:02:51
- - amatorzphp   [PHP] pobierz, plaintext echo $zmienna."<b...   6.04.2019, 20:40:16
- - viking   Daj wynik [PHP] pobierz, plaintext var_dump(js...   6.04.2019, 21:14:16
- - amatorzphp   Nie wykombinowałem. Napisz prosze jak się mam dost...   6.04.2019, 21:45:36
- - viking   Coś mieszasz. Skoro var_dump zwraca null to jednoc...   6.04.2019, 21:56:41
- - amatorzphp   Prawdę mówisz, var_dump zwracało null jak było pon...   6.04.2019, 22:16:05
- - viking   Wewnątrz foreach musisz zrobić kolejny który będzi...   7.04.2019, 05:03:14
- - amatorzphp   Sukces Wpis bardziej dla kolejnych poszukujących ...   7.04.2019, 09:11:26
|- - Kshyhoo   Cytat(amatorzphp @ 7.04.2019, 10:11:2...   8.04.2019, 09:22:08
- - viking   Generalnie zobacz https://prophp.pl/advice/show/17...   7.04.2019, 13:43:33


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 Aktualny czas: 9.10.2025 - 16:00