Kodları şu şekilde düzenledim ama sorunu halledemedim. Kodlar şu haliyle, örnek olarak, eğer "1.json" dosyası mevcutsa, "1.json dosyası var" diyor. Eğer yoksa yeni oluşturduğum dosyanın adını yazıyor. Mesela "2.json" var diyor. Yardımcı olabiir misiniz?
$ad = $_POST['ad'];
$ozellik = $_POST['ozellik'];
$kategori = $_POST['kategori'];
$eskifiyat = $_POST['eskifiyat'];
$yenifiyat = $_POST['yenifiyat'];
$indirimlifiyat = $_POST['indirimlifiyat'];
$urunsayisi = $_POST['urunsayisi'];
$urunalani = $_POST['urunalani'];
$icerikid = $_POST['icerikid'];
foreach($ad as $index => $names) {
$s_ad = $names;
$s_ozellik = $ozellik[$index];
$s_kategori = $kategori[$index];
$s_eskifiyat = $eskifiyat[$index];
$s_yenifiyat = $yenifiyat[$index];
$s_indirimlifiyat = $indirimlifiyat[$index];
$s_urunsayisi = $urunsayisi[$index];
$s_urunalani = $urunalani[$index];
$s_icerikid = $icerikid[$index];
global $filename;
$filename = $s_icerikid.".json";
$myObj->ss_dosya_adi[] = $dosya_adi;
$myObj->ss_ad = $s_ad;
$myObj->ss_ozellik = $s_ozellik;
$myObj->ss_kategori = $s_kategori;
$myObj->ss_eskifiyat = $s_eskifiyat;
$myObj->ss_yenifiyat = $s_yenifiyat;
$myObj->ss_indirimlifiyat = $s_indirimlifiyat;
$myObj->ss_urunsayisi = $s_urunsayisi;
$myObj->ss_urunalani = $s_urunalani;
$myObj->ss_icerikid = $s_icerikid;
$dosya = 'json/' . $filename;
if (file_exists($dosya)) {
echo "$dosya diye bir dosya var";
exit();
} else {
$dizijson = json_encode($myObj);
file_put_contents("json/" . $filename, $dizijson);
if (move_uploaded_file($gecici_yol, "../../images/indexurunler/" . $dosya_adi)) {
}
}
}
İlkinde yok diyor sonra var diyor dosya için. Neredeki döngüden kaynaklanıyor. Şu kodların işleyişini anlatabilir misiniz?
Cevap yok mu arkadaşlar.
Hatayı resim sayısına göre vermiyor şu an. Tek uyarı veriyor ama hâlâ nasıl yapılması gerektiğini akıl edemedim.
Peki ne yapmalıyım. Döngüden mi çıkartayım. Döngülerden önce bu sorguyu yaparsam, yine döngü içinde kullanmam lazım olacak. Çünkü, inputtan çoklu yükleme olarak gönderiyorum.
Kodların tamaını koyayım, öyle bakın. Eğer dosya varsa dosya var diyor. Dosya yoksa da dosya yok diyor, altına dosya var diyor.
$ad = $_POST['ad'];
$ozellik = $_POST['ozellik'];
$kategori = $_POST['kategori'];
$eskifiyat = $_POST['eskifiyat'];
$yenifiyat = $_POST['yenifiyat'];
$indirimlifiyat = $_POST['indirimlifiyat'];
$urunsayisi = $_POST['urunsayisi'];
$urunalani = $_POST['urunalani'];
$icerikid = $_POST['icerikid'];
foreach($ad as $index => $names) {
$s_ad = $names;
$s_ozellik = $ozellik[$index];
$s_kategori = $kategori[$index];
$s_eskifiyat = $eskifiyat[$index];
$s_yenifiyat = $yenifiyat[$index];
$s_indirimlifiyat = $indirimlifiyat[$index];
$s_urunsayisi = $urunsayisi[$index];
$s_urunalani = $urunalani[$index];
$s_icerikid = $icerikid[$index];
$dosya = 'json/' . $s_icerikid . '.json';
if (file_exists($dosya)) {
echo "$dosya diye bir dosya var";
exit();
} else {
echo "$dosya diye bir dosya yok";
}
global $filename;
$filename = $s_icerikid.".json";
$myObj->ss_dosya_adi[] = $dosya_adi;
$myObj->ss_ad = $s_ad;
$myObj->ss_ozellik = $s_ozellik;
$myObj->ss_kategori = $s_kategori;
$myObj->ss_eskifiyat = $s_eskifiyat;
$myObj->ss_yenifiyat = $s_yenifiyat;
$myObj->ss_indirimlifiyat = $s_indirimlifiyat;
$myObj->ss_urunsayisi = $s_urunsayisi;
$myObj->ss_urunalani = $s_urunalani;
$myObj->ss_icerikid = $s_icerikid;
$dizijson = json_encode($myObj);
file_put_contents("json/" . $filename, $dizijson);
if(move_uploaded_file($gecici_yol, "../../images/indexurunler/" . $dosya_adi)) {
}
}
Farklı yöntemler deniyorum. Şöyle bir şey yaptım. Eğer aynı isimde dosya mevcutsa "mevcut" "mevcut" yazıyor. Eğer mevcut değilse "değil, mevcut" yazıyor aşağıdaki koda göre.
$dosyaismi = $s_icerikid . '.json';
$dizin = "./json/";
if(file_exists($dizin . $dosyaismi)) {
echo "mevcut <br>";
} else {
echo "değil";
}
Sorun güncel.
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);
?>
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