<?php
include 'control/dbase.php';
if(isset($_GET['id'])){
if($_GET['id'] > 0){
$query = $db->query("SELECT * FROM xml_aktar WHERE id = '{$_GET['id']}' LIMIT 1", PDO::FETCH_ASSOC);
}else if($_GET['id'] == 0){
$query = $db->query("SELECT * FROM xml_aktar", PDO::FETCH_ASSOC);
}
if($query->rowCount()){
function RecurseXML($xml,$parent,$aranan,$urun_id){
global $db;
$urun_kontrol = $db->query("SELECT dil FROM urun WHERE id = '{$urun_id}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
foreach($xml as $key=>$value){
if(RecurseXML($value,$parent.".".$key,$aranan,$urun_id) == 0){
$bol = explode('|', $aranan);
foreach($bol as $ara){
if(!empty($ara)){
if(strstr($key, $ara)){
if($bol[0] == $key){
$varyant = $value;
}else if($bol[1] == $key){
$alt_varyant = $value;
}else if($bol[2] == $key){
$stok = $value;
}else if($bol[3] == $key){
$fiyat = $value;
}
if(!empty($stok) AND !empty($alt_varyant) AND !empty($varyant)){
$varyant_kontrol = $db->query("SELECT * FROM urun_varyant WHERE urun_id = '{$urun_id}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
if($varyant_kontrol){
$varyant_id = $varyant_kontrol['id'];
}else{
$ekle = $db->prepare("INSERT INTO urun_varyant SET dil = ?, urun_id = ?, baslik = ?");
$ekle = $ekle->execute(array($urun_kontrol['dil'],$urun_id,$varyant));
$varyant_id = $db->lastInsertId();
}
if(!isset($fiyat)){
$fiyat = 0;
}
$ekle = $db->prepare("INSERT INTO urun_varyant_secenek SET dil = ?, urun_id = ?, urun_vayant_id = ?, baslik = ?");
$ekle = $ekle->execute(array($urun_kontrol['dil'],$urun_id,$varyant_id,$alt_varyant));
$alt_varyant_id = $db->lastInsertId();
$varyant_key = $alt_varyant_id.'-';
$ekle = $db->prepare("INSERT INTO urun_varyant_secenek_fiyat_stok SET dil = ?, urun_id = ?, varyant_key = ?, fiyat = ?, stok = ?");
$ekle = $ekle->execute(array($urun_kontrol['dil'],$urun_id,$varyant_key,$fiyat,$stok));
}
}
}
}
}
}
}
function RecurseXMLimg($xml,$parent,$aranan,$urun_id){
global $db;
$urun_kontrol = $db->query("SELECT dil FROM urun WHERE id = '{$urun_id}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
foreach($xml as $key=>$value){
if(RecurseXMLimg($value,$parent.".".$key,$aranan,$urun_id) == 0){
$bol = explode('|', $aranan);
foreach($bol as $ara){
if(!empty($ara)){
if(strstr($key, $ara)){
$value = trim($value);
$value = explode('?',$value);
$value = $value[0];
$izinli_formatlar = array('jpg','jpeg','JPG','JPEG','png','PNG','svg','gif');
$format = end(explode('.', $value));
if(in_array($format,$izinli_formatlar)){
$resim_adi = time().'-'.uniqid().'.'.$format;
copy($value,'upload/'.$resim_adi);
$ekle = $db->prepare("INSERT INTO urun_resim SET dil = ?, urun_id = ?, resim = ?, sira = ?");
$ekle = $ekle->execute(array($urun_kontrol['dil'],$urun_id,$resim_adi,1));
}
}
}
}
}
}
}
function RecurseXMLkategori($xml,$parent,$aranan,$dil){
global $db;
$kategori_kontrol = $db->query("SELECT baslik FROM kategori WHERE dil = '{$dil}' AND baslik = '{$aranan}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
if($kategori_kontrol){
return $kategori_kontrol['baslik'];
}else{
foreach($xml as $key=>$value){
if(!empty($aranan)){
if(strstr($key, $aranan)){
return $value;
}else{
foreach($value as $key=>$value){
if(!empty($aranan)){
if(strstr($key, $aranan)){
return $value;
}else{
foreach($value as $key=>$value){
if(!empty($aranan)){
if(strstr($key, $aranan)){
return $value;
}
}
}
}
}
}
}
}
}
}
}
function xml_baglan($link){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_FAILONERROR,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
foreach( $query as $kontrol ){
$xml = new SimpleXMLElement(xml_baglan($kontrol['xml_link']));
if($xml->{$kontrol['agac']}){
foreach ($xml->{$kontrol['agac']} as $urun) {
$kategori_bol = explode('|', $kontrol['kategori_id']);
$baslik = $urun->{$kontrol['baslik']};
$kisa_aciklama = $urun->{$kontrol['kisa_aciklama']};
$stok_kodu = $urun->{$kontrol['stok_kodu']};
$stok = $urun->{$kontrol['stok']};
$marka = $urun->{$kontrol['marka_id']};
$gelis_fiyat = $urun->{$kontrol['gelis_fiyat']};
$piyasa_fiyat = $urun->{$kontrol['piyasa_fiyat']};
$fiyat = $urun->{$kontrol['fiyat']};
$kargo_fiyat = $urun->{$kontrol['kargo_fiyat']};
$kdv = $urun->{$kontrol['kdv']};
$aciklama = $urun->{$kontrol['aciklama']};
$kategori[0] = RecurseXMLkategori($urun,'',$kategori_bol[0],$urun_kontrol['dil']);
$kategori[1] = RecurseXMLkategori($urun,'',$kategori_bol[1],$urun_kontrol['dil']);
$kategori[2] = RecurseXMLkategori($urun,'',$kategori_bol[2],$urun_kontrol['dil']);
$kategori[3] = RecurseXMLkategori($urun,'',$kategori_bol[3],$urun_kontrol['dil']);
$resim[0] = $urun->{$kontrol['resim1']};
$resim[1] = $urun->{$kontrol['resim2']};
$resim[2] = $urun->{$kontrol['resim3']};
$resim[3] = $urun->{$kontrol['resim4']};
$resim[4] = $urun->{$kontrol['resim5']};
$kategori_sayisi = 3;
if(empty($kategori[0])){
if(!empty($kontrol['agac_kategori']) AND !empty($kontrol['agac_kategori_ayirac'])){
$agac_kategori_bol = explode($kontrol['agac_kategori_ayirac'],$urun->{$kontrol['agac_kategori']});
$kategori_sayisi = 0;
foreach($agac_kategori_bol as $akb){
if(!empty($akb)){
$kategori[$kategori_sayisi] = $akb;
$kategori_sayisi++;
}
}
}
}
if($fiyat == ''){ $fiyat = 0; }
if($piyasa_fiyat == ''){ $piyasa_fiyat = 0; }
if($stok == ''){ $stok = 0; }
if($baslik != '' AND $stok_kodu != ''){
$urun_kontrol = $db->query("SELECT id FROM urun WHERE dil = '{$kontrol['dil']}' AND stok_kodu = '{$stok_kodu}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
if($urun_kontrol){
$guncelle = $db->prepare("UPDATE urun SET fiyat = ?, piyasa_fiyat = ?, stok = ? WHERE stok_kodu = ? LIMIT 1");
$guncelle = $guncelle->execute(array($fiyat,$piyasa_fiyat,$stok,$stok_kodu));
$db->exec("DELETE FROM urun_varyant WHERE urun_id = '{$urun_kontrol['id']}'");
$db->exec("DELETE FROM urun_varyant_secenek WHERE urun_id = '{$urun_kontrol['id']}'");
$db->exec("DELETE FROM urun_varyant_secenek_fiyat_stok WHERE urun_id = '{$urun_kontrol['id']}'");
RecurseXML($urun,'',$kontrol['varyant_baslik'].'|'.$kontrol['alt_varyant_baslik'].'|'.$kontrol['alt_varyant_stok'].'|'.$kontrol['alt_varyant_fiyat'],$urun_kontrol['id']);
}else{
$kategori_id = 0;
for ($i = 0; $i <= $kategori_sayisi; $i++) {
if($kategori[$i] != ''){
$guncel_kategori = $kategori[$i];
$kategori_kontrol = $db->query("SELECT id FROM kategori WHERE dil = '{$kontrol['dil']}' AND baslik = '{$guncel_kategori}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
if($kategori_kontrol){
$kategori_id = $kategori_kontrol['id'];
}else{
$ekle = $db->prepare("INSERT INTO kategori SET dil = ?, baslik = ?, link = ?, kisa_aciklama = ?, aciklama = ?, popup_resim = ?, popup_link = ?, aktif = ?, sira = ?, ust_kategori = ?, ust_menude_goster = ?, alt_menude_goster = ?");
$ekle = $ekle->execute(array($kontrol['dil'],$guncel_kategori,sef($guncel_kategori),$guncel_kategori,'','','',1,999,$kategori_id,0,0));
$kategori_id = $db->lastInsertId();
}
}
}
$marka_id = 0;
if($marka != ''){
$marka_kontrol = $db->query("SELECT * FROM marka WHERE dil = '{$kontrol['dil']}' AND baslik = '{$marka}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
if($marka_kontrol){
$marka_id = $marka_kontrol['id'];
}else{
$ekle = $db->prepare("INSERT INTO marka SET dil = ?, baslik = ?, resim = ?");
$ekle = $ekle->execute(array($kontrol['dil'],$marka,'bos.png'));
$marka_id = $db->lastInsertId();
}
}
if($kisa_aciklama == ''){ $kisa_aciklama = $baslik; }
if($kargo_fiyat == ''){ $kargo_fiyat = 0; }
if($kdv == ''){ $kdv = 18; }
$ekle = $db->prepare("INSERT INTO urun SET dil = ?, baslik = ?, link = ?, kisa_aciklama = ?, stok_kodu = ?, stok = ?, marka_id = ?, gelis_fiyat = ?, piyasa_fiyat = ?, fiyat = ?, kargo_fiyat = ?, kdv = ?, aciklama = ?, kur_tipi = ?, goruntulenme = ?, durum = ?, kategori_id = ?, etiket = ?");
$ekle = $ekle->execute(array($kontrol['dil'],$baslik,sef($baslik),$kisa_aciklama,$stok_kodu,$stok,$marka_id,$gelis_fiyat,$piyasa_fiyat,$fiyat,$kargo_fiyat,$kdv,$aciklama,$kontrol['kur_tipi'],0,1,$kategori_id,0));
$urun_id = $db->lastInsertId();
RecurseXMLimg($urun,'',$kontrol['resim1'].'|'.$kontrol['resim2'].'|'.$kontrol['resim3'].'|'.$kontrol['resim4'].'|'.$kontrol['resim5'],$urun_id);
RecurseXML($urun,'',$kontrol['varyant_baslik'].'|'.$kontrol['alt_varyant_baslik'].'|'.$kontrol['alt_varyant_stok'].'|'.$kontrol['alt_varyant_fiyat'],$urun_id);
}
}
}
}else{
echo '<b>İçeriğe ulaşılamadı.</b>';
}
}
}else{
die('<meta http-equiv="refresh" content="0;URL='.$site.'">');
}
}else{
die('<meta http-equiv="refresh" content="0;URL='.$site.'">');
}
?> PHP Xml veri çekiminde yardım lazım
0
●106
- 26-08-2023, 21:28:06arkadaşlar iyi akşamlar kullanmakta olduğum yazılım için de xml ile ürün çekimi yapıyorum ancak şöyle bir durum söz konusu KADIN > İç Giyim > Çorap bu kategoriyi alabiliyorum ve otomatik olarak ekliyor ancak Çocuk > Kız Çocuk > Çorap alması gereken kategoriyi de Kadın kategorisi altındaki çorap kısmına ekliyor kategorinin sadece başlığını kontrol ediyor bana bu konu hakkında bir yol gösterip yardımcı olur musunuz ÜCRETLİ/ÜCRETSİZ xml.php dosyam bu şekilde