v2.5.2
Giriş yap

Json yolunu nasıl vereceğim

yazilimyolcusu
520 defa görüntülendi

Form aracılığıyla bir json dosya oluşturdum. Bu json dosyasının içindekileri "index.php" sayfasında listelemem gerekiyor. Ama, bir ".json" dosyasının olup olmadığını nasıl kontrol edeceğim. Yani eğer "admin/panel/1.json" adresini verirsem, o dosyanın içini listeliyor, haricinde nasıl yapılacağını bilemedim.

Cevap yaz
Cevaplar (13)
yazilimyolcusu
627 gün önce

Sorunu şu şekilde hallettim. Teşekkür ederim.

<?php
$list = glob('./admin/panel/json/*.json');
$files = array_map('realpath', $list);
foreach($files as $json) {
    $exp = explode( '/', $json );
    $filename = end($exp); 
    $veriokujson = file_get_contents($filename);
    $yeniveri = json_decode($veriokujson);
?>
kartal
628 gün önce

Sanırım olaş şöyle geliliyor.
index pagi açtın ilgili klasörde .json degilde erhangi birjson varmı bakmak ve varsa bunları listelemek.
Öncelikle kkasör içine 1.json diye kaydedeceği zaman veri tabanınada json adlı tablo oluştur sonra bunları çekerken foreach ile listelet dediğin gibi get parametresi olarak da
index?data=1 olson bu 1 senin veri tabanındaki 1.json sonra klasöre bakıp file exist ile 1.son varmı bakabilirsin.
Yalnız burada çok önemli nokta klasöre json wklerken aynı zamanda veritabanına da eklemen gerek veri bütünlüğü iöin
mysql transaction kullanmalısın
ama önce sorununu gider ona sonra bak

yazilimyolcusu
629 gün önce

Eğer json dosyaları kök klasördeyse tam olarak çalışıyor. Değilse aşağıdaki hatayı veriyor.
: file_get_contents(4.json): failed to open stream: No such file or directory in on line

yazilimyolcusu
632 gün önce

Cevap veren yok mu arkadaşlar.

yazilimyolcusu
633 gün önce

Cevap yok mu arkadaşlar.

yazilimyolcusu
634 gün önce

Sorunun çözümü bu şekilde. Sadece yol veremedim. Yolu da verirsem sorun tamamıyla çözülüyor. Bir bakabilir misiniz? Şu yolu ekleyeceğiz sadece.
"admin/panel/json/"

$list = glob( dirname(__FILE__).'*.json' );
foreach($list as $json){
    $exp = explode( '/', $json );
    $filename = end($exp); 
    $veriokujson = file_get_contents($filename);
    $yeniveri = json_decode($veriokujson);
    echo $yeniveri->ss_ozellik;
}
yazilimyolcusu
639 gün önce

"m100" kontrol ettireyim de nasıl. Onu soruyorum. Anlatamadım ben galiba tam olarak. Bir form var. Bu formu "1.json", "2.json", "3.json" şeklinde kaydediyorum. admin klasörümde json uzantılı bir dosya var mı onu soracam ve varsa index sayfamda bunu listeleteceğim. Yani aşağıdaki kod ile index sayfasında "2.json" ı listeletemem. Çünkü algılayamaz index sayfası. Aşağıdaki kod, son kullanıcı için uygun değil.

$file = __DIR__ . '/admin/panel/1.json';

if (file_exists($file)) {
    // dosya mevcut    
}
m100
639 gün önce

1- file_exist fonksiyonuyla dosyanın olup olmadığını kontrol ettir
2- file_get_contents ile o dosyayı çek ve bir değişkene ata
3- o değişkeni json_decode ile normal bir arraye dönüştür
ta daa

yazilimyolcusu
640 gün önce

Sorunum güncel. Bir çare bulamadık mı arkadaşlar.

yazilimyolcusu
641 gün önce

Şimdi "admin/panel" klasörü içinde, isimleri sadece sayı olan json dosyaları oluşturuyorum. Yani "1.json", "2.json" gibi. Kök klasöründe ise "index.php" sayfası var. Şimdi "admin/panel" içinde oluşturulmuş bir json dosyasının index sayfasında algılanması için "admin/panel" içinde dosya var mı yok mu diye sorabiliyor olmamız lazım. Şöyle anlatayım. Index sayfasında bir ürünün, satın al butonuna tıklayınca o ürüne ait diğer bilgilere şu şekilde ulaşabiliriz.

a.php?getparametresi=<?php echo $x['urun_id']; ?>

Bu bağlantıya mantığına göre bir şey olmalı. Yani son kullanıcı, form sayfasını post ettikten sonra oluşan "3.json" isimli bir dosyayı sunucunun içindeki "admin/panel" klasörü içine girip, json dosyasının adını öğrenip, bir kod editöründe "index.php" sayfasının slaydır bölgesini bulup, ilgili yere "3.json" yazamaz. Index sayfasının bir şekilde bu klasör içindeki dosyayı algılayıp o kısımda kullanılabiliyor olması lazım.

yazilimyolcusu
642 gün önce

Bana şuna benzer bir şey lazım. Index dosyasının olup olmadığını algılaması lazım.

if(file_exists(.json))
yazilimyolcusu
643 gün önce

Şimdi şöyle. "form.php" sayfasından gönderdiğim verileri "islem.php" sayfasında ".json" formatında oluşturuyorum. Bu verileri de "index.php" sayfasındaki slider'da sırasıyla; "resim, özellik" gibi listeletmem gerekiyor.

"Index.php" sayfasında listelettiğim resmin "satın al" butonuna tıklayınca, bu resme ait diğer resimler ve diğer verileri listeletmem lazım.

Yani; admin panelinde ürün ekliyorum. Index sayfasındaki slider'da o ürünün 1. resmini listeletiyorum ve satın al butonuna tıklayınca o resme ait diğer resimler ve özellikler listelenecek. Ama .json dosyasının adını benim bir şekilde "index.php" sayfasındaki slider'a ve "satın al" butonuyla tıkladığımda da "detay.php" sayfasına tanıtmam lazım.

Yani ürünü slider'ın tanıması için "get" gibi bir bağlantı lazım. Yani "admin" panelindeki ".json" dosyasını benim "get" gibi bir bağlantıyla index de listeletmem lazım. Akıl lazım bu konuda. Bu arada ".json" dosyalarının ismi için "json_id" diye bir alan var form'da. Yani isimleri hep sayı olarak kaydediyorum. Yani "1.json" gibi. Belki bir fikir verir size.

tayfunerbilen
645 gün önce

Soru: bir ".json" dosyasının olup olmadığını nasıl kontrol edeceğim.

Cevap:

<?php

$file = __DIR__ . '/admin/panel/1.json';

if (file_exists($file)) {
    // dosya mevcut    
}

Diger soylediklerini anlayamadim acikcasi, daha acik olursan belki yardimci olabiliriz.