v2.5.2
Giriş yap

PHP XML while döngüsüyle işlem

nyc
442 defa görüntülendi

Merhaba, şöyle bir xml dosyam var <cbc:Name></cbc:Name> while döngüsüne aldım başarıyla tüm bilgileri aldı yalnız bana alttaki TL KDV bölümüde gerekiyor kolon kolon ayırıp aynı tabloda birleştiricem

PHP KODU bu şekilde

    function ara($bas, $son, $yazi)
{
    @preg_match_all('/' . preg_quote($bas, '/') .
    '(.*?)'. preg_quote($son, '/').'/i', $yazi, $m);
    return @$m[1];
}
if(isset($_FILES['dosya'])){
   $hata = $_FILES['dosya']['error'];
   if($hata != 0) {
      echo 'Yüklenirken bir hata gerçekleşmiş.';
   } else {
      $boyut = $_FILES['dosya']['size'];
      if($boyut > (1024*1024*3)){
         echo 'Dosya 3MB den büyük olamaz.';
      } else {
         
         $isim = $_FILES['dosya']['name'];
         $uzanti = explode('.', $isim);
         $uzanti = $uzanti[count($uzanti)-1];
         
            $dosya = $_FILES['dosya']['tmp_name'];
            copy($dosya, 'dosyalar/' . $_FILES['dosya']['name']);
			
            echo '<br>Dosyanız upload edildi!';
			$dosya = $dosya;
			$icerik = file_get_contents($dosya);
			$unvan = ara('<cbc:Name>', '</cbc:Name>', $icerik);
			$adres = ara('<cbc:StreetName>', '</cbc:StreetName>', $icerik);
			$sirketMahalle = ara('<cbc:CitySubdivisionName>', '</cbc:CitySubdivisionName>', $icerik);
			$sirketSehir = ara('<cbc:CityName>', '</cbc:CityName>', $icerik);
			$faturaNo = ara('<cbc:ID>', '</cbc:ID>', $icerik);
			$vergiDairesi = ara('<cac:TaxScheme><cbc:Name>', '</cbc:Name></cac:TaxScheme>', $icerik);
			$vergiNo = ara('<cbc:ID schemeID="VKN">', '</cbc:ID>', $icerik);
			$faturaAciklama = ara('<cac:Item>', '</cac:Item>', $icerik);
			$urunTutar = ara('<cac:Price>', '</cac:Price>', $icerik);
			$toplamTutar = ara('<cbc:PriceAmount currencyID="TRY">', '</cbc:PriceAmount>', $icerik);

			//echo str_replace('<', '&lt;', $icerik);
			echo 
			'<br><br><br><b>Şirket Ünvanı:</b> ' . $unvan[0]
			.'<br><b>Şirket Adres:</b> ' . $adres[0]
			.'<br><b>Şirket Mahalle:</b> ' . $sirketMahalle[0]
			.'<br><b>Şirket Şehir:</b> ' . $sirketSehir[0]
			.'<br><b>Fatura Numarası: </b>' . $faturaNo[0]
			.'<br><b>Vergi Dairesi: </b>' . $vergiDairesi[0]
			.'<br><b>Vergi Numarası: </b>' . $vergiNo[0]
			.'<br><b>Fatura Açıklaması: </b>' . $faturaAciklama[0]
			.'<br><br><b>Fatura Toplam Tutar: </b>' . $toplamTutar[0]. " TL";
			
			foreach ($faturaAciklama as $ftraciklama){
				echo "<br>".$ftraciklama."<br>";
				
				
				
			}
			
					
				  }
			   }
			}

foreach ($faturaAciklama as $ftraciklama){
echo "<br>".$ftraciklama."<br>";

kdv bölümünü ve sayıları örnek "ürün açıklaması, fiyat, kdv" şeklinde yan yana sıralamak için ne yapabilirim

nyc
866 gün önce

Soruyu okuyunca biraz karışık yazdığımı fark ettim :) şöyle düzelteyim benim aslında istediğim şey şu döngü kullanarak xml dosyasındaki "ürünün açıklamasını" ara fiyatlarını alıp ekrana çıktısını almak istiyorum fakat uzun zamandan beridir kod yazmıyorum mantığını bir türlü oturtamadım.

örnek olarak şunun gibi bir çıktı almak istiyorum. döngüye sokmak istediğim alanlar: <cac:Item> , <cac:Price>