Arama butonu
Bu konudaki kullanıcılar: 1 misafir
14
Cevap
512
Tıklama
0
Öne Çıkarma
Php json'u arraya çevirmek.
O
11 yıl (2692 mesaj)
Binbaşı
Konu Sahibi

Merhabalar.Birkaç işlemle json'u arraya atıyorum şimdi şöyle bir kullanımı nasıl sağlayabilirim? Çok basit ama anlayamadım.(Arrayı php ile gönderip javascript ile işliyorum burada bir problem yok tek sorunum array'ı oluşturmak) böyle bir kullanımı nasıl sağlarım?

Stock[Index].Quality 
Stock[Index].IsGifted(bu bir bool değeri.)


Şuan for each döngüsü ile jsondaki her bir itemı işliyorum.Bu kısımda sorun yok bu değerleri nasıl her bir index için oluşturabilirim? Yani tek bir index değerine alt dallarda farklı değerler atamak istiyorum.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



D
11 yıl (2971 mesaj)
Yarbay

<?php
$a['hede']['isHede'] = true;
$a['hede']['isHodo'] = false;
$a['antin']['isHede'] = false;
$a['kuntin']['isHodo'] = false;

echo json_encode($a);

?>
Bunu ajaxla çağırıyorsun.

$.ajax({
type: 'GET',
url: 'http://example/functions.php',
data: { get_param: 'value' },
dataType: 'json',
success: function (data) {
if(data.hede.isHede) {
alert('hede hodo');
}
}
});


Bu mesaja 1 cevap geldi.
O
11 yıl (2692 mesaj)
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Delifisek.Tux

<?php
$a['hede']['isHede'] = true;
$a['hede']['isHodo'] = false;
$a['antin']['isHede'] = false;
$a['kuntin']['isHodo'] = false;

echo json_encode($a);

?>
Bunu ajaxla çağırıyorsun.

$.ajax({
type: 'GET',
url: 'http://example/functions.php',
data: { get_param: 'value' },
dataType: 'json',
success: function (data) {
if(data.hede.isHede) {
alert('hede hodo');
}
}
});

Çok saolun hocam bir sayfada jsonu vesaire işleyip javascripte gönderiyorum(sayfa yükleniyor veriler cekilip yorumlanıp resimler yüklenicek derken 15 saniyeyi bulabiliyor bunları direkt php ile işlesem daha hızlımı olur? Benzer bir site aynı işi saniyeler içinde yapıyor anlamış değilim.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
D
11 yıl (2971 mesaj)
Yarbay

Tek istek 15 sn sürüyorsa yazdığın kodda bir şey vardır. Veya resimlerin çok geç yüklüyordur.


Bu mesaja 1 cevap geldi.
O
11 yıl (2692 mesaj)
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Delifisek.Tux

Tek istek 15 sn sürüyorsa yazdığın kodda bir şey vardır. Veya resimlerin çok geç yüklüyordur.

Muhtemelen kodumun bir kısmında hata vardır.Php ile işlemeyi deniyim birde.Bir json açılıyor ve foreach ile 2000 itemı döndürüp resimlerini çekip bastırıyorum.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
D
11 yıl (2971 mesaj)
Yarbay

2 bin item resmini tek sayfa basıyorsan sorun resimlerin görüntülenmesi olabilir. cdn üzerinden çağırmayı dene


Bu mesaja 2 cevap geldi.
O
11 yıl (2692 mesaj)
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Delifisek.Tux

2 bin item resmini tek sayfa basıyorsan sorun resimlerin görüntülenmesi olabilir. cdn üzerinden çağırmayı dene

Hocam resimler cdn üzerinde zaten sadece linkleri cekiyorum json'dan javascript kodları sayfa yüklendiğinde başlamasıda bir kaç saniye yavaşlatıyor olabilir.



< Bu ileti mobil sürüm kullanılarak atıldı >

O
11 yıl (2692 mesaj)
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Delifisek.Tux

2 bin item resmini tek sayfa basıyorsan sorun resimlerin görüntülenmesi olabilir. cdn üzerinden çağırmayı dene

Hocam bir json'ı decode edip bana lazım olanların olduğu yeni bir json encode edip file get contents ile çekip uyguluyorum.Bu işlem 4.5 saniye sürüyor nginx kullanmak hızı biraz daha düşürecektir muhtemelen.Onun yerine direkt ana jsonu çekip uygulamayı deniyeceğim.Yani şuan şu işlemler dönüyor.
1-)Ana json'u çek.
2-)Ana jsonu istediğin hale getir.
3-)Yeni jsonu echo et
4-)Yeni jsonu file_get_contents ile çek.
5-)Gerekli kısımları sayfaya yazdır.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
D
11 yıl (2971 mesaj)
Yarbay

bir sefer json cektikten sonra neden javascript içinde process etmiyorsun ki. ayrıca maden yeni data yaptın echo ettiğinde o iş biter.

Bence yaptığın işte bir mantık hatası var.


Bu mesaja 2 cevap geldi.
O
11 yıl (2692 mesaj)
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Delifisek.Tux

bir sefer json cektikten sonra neden javascript içinde process etmiyorsun ki. ayrıca maden yeni data yaptın echo ettiğinde o iş biter.

Bence yaptığın işte bir mantık hatası var.

Hocam datayı json şeklinde echo ediyorum yeni bir json yaratılmış oluyor.Zaten php içinde jsonu kullandığım için ayrıyeten javascript ile cagırmak istemedim.Sanırım ayrı bir json yaratmak yerine direkt gelen jsonu işleyeceğim.Bunu yapma amacım iki adet json çekip tek jsona dönüştürmek ayrı iki şeyle uğraşmıyorum böylece.





< Bu mesaj bu kişi tarafından değiştirildi Obilux -- 4 Ekim 2015; 12:06:19 >

< Bu ileti mobil sürüm kullanılarak atıldı >

O
11 yıl (2692 mesaj)
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Delifisek.Tux

bir sefer json cektikten sonra neden javascript içinde process etmiyorsun ki. ayrıca maden yeni data yaptın echo ettiğinde o iş biter.

Bence yaptığın işte bir mantık hatası var.

Hocam en iyisi javascriptle atamak olacak değerleri sanırım.Olayı çok karışık anlatmışım en baştan bi kodlarla anlatıyım.

Burası en son basamak işlenmiş veriyi çekip değere atıyorum.
function open_json($url,$assoc = false){return json_decode(file_get_contents($url),$assoc);} 
$bp_data_hat1 = open_json('http://' . $_SERVER['HTTP_HOST'] . '/data/inventory/tf2/?id=76561198148667037', true);


Burda kullanmak istediğim datayı çekiyorum(işleyip echo ettiğim.)

<?php 
include('../../../lib/jsonislemleri.php');
if(isset($_GET['id']))
{
echo json_encode(open_items($_GET['id']));
}else{
$bp['sucess'] = false;
echo json_encode($bp);
}
?>

Burası ise 2 jsonu nasıl tek jsona atadığım.
function open_json($url,$assoc = false){return @json_decode(file_get_contents($url),$assoc);}   
function save_json($data,$path){$tmp = json_encode($data);file_put_contents($path, $tmp, LOCK_EX);}

function open_items($steamid,$onlyTradeable = true){
$metal = 0;

$bp_item = array();
$bp_data = open_json('http://api.steampowered.com/IEconItems_440/GetPlayerItems/v0001/?key='.APIKEY.'&SteamID='.$steamid.'&format=json',false);

if (@!$bp_data->result->status){
$bp_item['success']=false;
return $bp_item;
}

if (@$bp_data->result->status==1){
$schema=open_json(dirname(__FILE__).'/../data/schema.json',true);
foreach($bp_data->result->items as &$item){
$tradable=true;

if (isset($item->flag_cannot_trade)){
if ($item->flag_cannot_trade)
$tradable = !$onlyTradeable;
}

if ($tradable==true){
if (!isset($bp_item['schema'][$item->defindex])){
$bp_item['schema'][$item->defindex]=$schema[$item->defindex];
}
}
}
}else{
$bp_item['success']=false;
}
return $bp_item;
}

Kod kalabalığı olmaması için atadağım diğer değişkenleri sildim.
Yani olay şu iki adet jsonu açıyorum sonra bir array oluşturuyorum ve attığım 2. koddaki şekilde echo edip.İlk koddaki şekilde kullanıyorum.
Edit:30 Saniyede bir çalışıcak bir cron'mu yazsam direkt kaynaktan çekip denediğimde çok yakın bir değer aldım zaten.





< Bu mesaj bu kişi tarafından değiştirildi Obilux -- 4 Ekim 2015; 19:06:52 >
Bu mesaja 1 cevap geldi.
D
11 yıl (2971 mesaj)
Yarbay

Javascripte yap. Php de yapmanın bir anlamı yok.


Bu mesaja 1 cevap geldi.
O
11 yıl (2692 mesaj)
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Delifisek.Tux

Javascripte yap. Php de yapmanın bir anlamı yok.

Saolun hocam konu boyunca ettiğiniz tüm yardımlar için başka bir site bu işlemleri nasıl 500 ms de yapabiliyor şaştım kaldım.Cron ile 30 saniyede bir jsonu mysqle gönderebilirim oda serverı yorabilir.Javascript ile yapacağım.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
D
11 yıl (2971 mesaj)
Yarbay

O
11 yıl (2692 mesaj)
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Delifisek.Tux

http://api.steampowered.com/IEconItems_440/GetPlayerItems/v0001/?key='.APIKEY.'&SteamID='.$steamid.'&format=json

Buradan çektiğin datayı direkt olarak js de işlesen olmuyormu neden illa php devreye sokuyorsun.

Hocam js ile islesemde uzun olacakti yakindigim kisim jsonun cok uzun surede cekilmesiydi.Şimdi datayı curl ile çekiyorum.2.3 saniyeye düştü nginx fastcgi server üstünde 1 saniyeye kadar çekebilirim muhtemelen.Yardımlarınız için teşekkür ederim file get contents ve curl arasında daglar kadar fark var.



< Bu ileti mobil sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.