1. sayfa
Bunu "otomatiklestirmek" derken kastettigin nedir? Kendi sitende belirli URL cagrildiginda JSON mi donmek istiyorsun? Olayin JSON parse etmek ile alakasi nedir? |
Şöyle olucak mesela. Şu örnek bir API linki olsun. https://lichess.org/api/user/qwertyuiopzcx Normal browserden girince direk JSON olarak gözüküyor. Benim yapmak istediğim, kullanıcı bir boşluğa /user/ den sonrasını girecek daha sonra karşısına JSON değil belli variableler parselenmiş şekilde gözükecek. - Kullanıcı şöyle görüyor: Sitedeki boşluğa nick girip enterliyor Daha sonra karşısına JSON'dan parselenmiş belli değerler geliyor. Örnek olarak maç sayısı vb |
Tamam, soyle bir senaryo yani. 1) Adam siteye girdi, normal bir html sayfasi. Kullanici adi girebilecegi bir form alani var. 2) Kullanici adini yazdi ve submit etti. 3) Yeni onune gelen sayfada, JSON parse edilmis olacak. Istedigin bu sanirim oyle mi? Yani aslinda senin verdigin linkteki gibi bir goruntuyu elde etmek istiyorsun, 3. adimda. Server response donerken html degil, String response donecek ve bu String de JSON olacak. Hangi dil ile yaziyorsun? Server response type i olarak application/json yazacak header'a ve yalnizca JSON response u donecek. Yazdigin dile gore de, elinde objeyi JSON seklinde yazdiracaksin. Yani sen parse etmeyi ogrendim yazmistin ya ilk mesajinda, tam tersini yapip objeyi stringify edeceksin. Senin verdigin ornekteki response header larini incelersen application/json header'ini gorebilirsin:https://i.hizliresim.com/LbbJYa.png Bu arada verdigin linkteki JSON'da "pussyslayer1337" yaziyor, dikkatlerden kacmadi : ) |
O zaman şöyle yapmam gerekiyor sanırım. Curl la istek yollayıp gelen JSON'u Javascript kullanarak stringe çevireceğim en sonra js den htmle yazarmış gibi sitenin görünen kısmına aktaracağım. Formu PHP ile yapacağım sanırım onda user/ den gelen kısmı var olarak gösterip inputu var la mı replaceleyeceğim. ?
:) |
Curl ile request neden yolluyorsun? Gostermek istedigin data ( JSON formatinda olan ) baska bir server'a mi ait? Yani : [kullanici] ---> [senin site] ---> [3. baska bir web sitesi] gibi bir durum mu var ortada? Eger boyle ise, ben seni ilk mesajda yanlis anlamis oluyorum; evet tek yapman gereken kullanicinin senin sitene girdigi input a gore diger server dan JSON i cekip gostermek olacak. Bir nevi proxy olacaksin aslinda. Ama eger data sendeyse, var olan datayi JSON ile gostereceksin yalnizca. Aslinda response donerken Content-type i application/json yapacaksin ve String doneceksin, basit bir sey bu. --- " Curl la istek yollayıp gelen JSON'u Javascript kullanarak stringe çevireceğim " demissin ; Curl ile istek yolluyorsan server side 'a gelmissin demektir. Yani kullanici input a yazmis yazacagini, server a request gelmis. Bu noktadan sonra Javascript ile JSON parse edemezsin. Curl response ' unu PHP ile parse edip, string e cevirmen gerekiyor. Alternatif olarak, kullanici input u submit ettiginde, Ajax kullanarak XHR request i yazabilirsin, boylece request senin server a hic gelmez; gelen response u da JS kullanarak stringify edip gosterebilirsin ayni sayfada. |
Verdiğim örnek: https://github.com/ornicar/lila/blob/master/README.md#http-api Evet, dediğiniz gibi 3. bir siteden veri alacağım. Bahsettiğiniz şeyi araştıracağım, teşekkürler. |
şu sayfa dediğimi anlatıyor sanırımhttps://www.w3schools.com/js/js_json_http.asp |
$json = file_get_contents("https://lichess.org/api/user/qwertyuiopzcx"); $array = json_decode($json,true); print_r($array); echo "adamin kullanici adi: {$array['username']}"; |
https://github.com/3mirhan/lichess-php durum şu. formdaki veriyi işlersem amacıma ulaşmış olacağım https://github.com/3mirhan/lichess-php/issues/2 şimdi de jsonu decodeleyemiyorum |
1. sayfa
< Bu ileti DH mobil uygulamasından atıldı >