Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

PHP ile text yazdırma problemi

Merhaba Arkadaşlar,

PHP ile elimizde olan / yazdırılabilen bir Array'i text dosyası olarak kaydettirmek istiyoruz.

Array
(
[data] => Array
(
[0] => Array
(
[name] => Alphawezen
[category] => Musician/band
[id] => 124362434274509
[created_time] => 2011-05-10T23:08:10+0000
)

[1] => Array
(
[name] => ASD asd
[category] => Musician/band
[id] => 135418506471222
[created_time] => 2011-05-10T23:07:19+0000
)

)

)


olarak gelen bir Array bu ve aşağıdaki kod ile de yazdırmaya çalışıyoruz.

<?
$dosya_dizin = "/dosya";
$dosya_adi = "veriler.txt";
touch ("$dosya_adi") or die ("Dosya Yaratılamadı!") ;
$dosya = fopen ($dosya_adi , 'w') or die ("Dosya açılamadı!");
$adi = "selamlar";
fwrite ( $dosya , $music ) ;
fclose ($dosya);
?>

Ancak veriler.txt dosyasına baktığımızda sadece Array yazdığını görüyoruz ve bu da sadece ilk satırı veriler.txt dosyasına yazdırıldığını gösteriyor. Buradaki sorunu nasıl çözebiliriz?

Şimdiden teşekkürler.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • uls adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    65 cevap - 10 soru
    büyük ihtimalle $music array'inizin adı. bunu direkt olarak fwrite ile kullanırsanız sadece değişkenin tipi olan Array kısmını alır. öncelikle string'e çevirmelisiniz.

    bunun için array'i bir döngü ile string'e çevirebilirsiniz ya da şöyle bir kullanım yapabilirsiniz;

    ob_start();
    print_r($dizi);
    $string = ob_get_contents();
    ob_end_clean();
    
    fwrite($dosya, $string);
    


    fakat döngüye almak muhtemelen daha güzel bir yol olur.
    • Cagri adlı üyenin fotoğrafı Cagri
      <?
      $dosya_dizin = "/dosya";
      $dosya_adi = "veriler.txt";
      touch ("$dosya_adi") or die ("Dosya Yaratılamadı!") ;
      $dosya = fopen ($dosya_adi , 'w') or die ("Dosya açılamadı!");
      $adi = "selamlar";
      fwrite ( $dosya , serialize($music) ) ;
      fclose ($dosya);
      ?>

      şu şekilde sonuca ulaştık ancak şimdi de mesela kaç adet elemanımız var bunu öğrenmek istiyoruz.
      Bunu nasıl bir şekilde yapabiliriz acaba?
      12 yıl önce yazılmış
  • kralmermi adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    102 cevap - 6 soru
    for($i=0; $i<count($dizix[data]); $i++)
    {
      $x= $x.$dizix[$data][$i][name];
      $x= "--".$x.$dizix[$data][$i][category];
      $x= "--".$x.$dizix[$data][$i][id];
      $x= "--".$x.$dizix[$data][$i][created_time]."---------";
    }
    $music = $x;
    $dosya_dizin = "/dosya";
    $dosya_adi = "veriler.txt";
    touch ("$dosya_adi") or die ("Dosya Yaratılamadı!") ;
    $dosya = fopen ($dosya_adi , 'w') or die ("Dosya açılamadı!");
    $adi = "selamlar";
    fwrite ( $dosya , $music ) ;
    fclose ($dosya);
    
    
    
    • kralmermi adlı üyenin fotoğrafı kralmermi
      sanırım işini görecek
      12 yıl önce yazılmış
    • Cagri adlı üyenin fotoğrafı Cagri
      Şöyle bir şey var ancak biz bu music adlı array i oluşturmuyoruz, Facebook'tan çekiyoruz.

      Elimize music adında bir array geçiyor ve içerisindeki bilgiler de örnek olarak soruda olduğu şekilde. Bu gelen music adlı array içerisinde kaç tane eleman olduğunu göstermek istiyoruz dosyada ve bu örnekte 2 yazması gerekiyor gibi...

      Teşekkürler yardım için.
      12 yıl önce yazılmış
  • 1
    phpogreniyorum adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    22 cevap - 7 soru
    bu soruyu daha önce sordun

    <?php 
    $bilgiler = array(
    "data" => array(
    0=> array(
    "name" => "sabri",
    "category"=>"Musician/band",
    "id"=>123456,
    "created_time"=>"2011-05-10T23:08:10+0000"
    ),
    1=>array(
    "name" => "sabri",
    "category"=>"Musician/band",
    "id"=>123456,
    "created_time"=>"2011-05-10T23:08:10+0000"
    )),);
    $dizi = array();
    for($i=0; $i<count($bilgiler['data']); $i++){
    if($a = $bilgiler['data'][$i]['category']=="Musician/band"){
    	array_push($dizi,$i);
    }
    }
    
    echo count($dizi)." Adet Var";
    
    ?>

    bende sana bunu tavsiye ettim denedin olmadımı olmdıysa olmadı de ona göre yardım edelim bu arada sadece burada değil diğer sitelerdede sordun sanırım mantıklı cevabı ben verdim

    http://www.uzmansorusu.com/soru/1467

    buradaki sen değilmisin ???

    yada benmi yalnış anlıyorum senin istediğini ?

    veya senmi anlatamıyorsun istediğin olay array içersindekilerin kaç adet oldugunu görmek değilmi ???
    • kralmermi adlı üyenin fotoğrafı kralmermi
      10 numara cvp yazmişssin abi bu senin gecen gun yazdigin kod degilmi ama arkadas sanirim php de acik sorunu war count($dizi[data]); dicek alicak sonucu ama onu yazmaya useniyor sanirim kolay gele.
      12 yıl önce yazılmış
    • Cagri adlı üyenin fotoğrafı Cagri
      Çok teşekkürler o sorunumuzu halletti bu cevabın.

      Ayrıca;

      Array
      (
      [id] => 1000000318
      )

      şeklinde gelen bir array içerisinde 1000000318 rakamını nasıl alabiliriz sadece?
      12 yıl önce yazılmış
    • phpogreniyorum adlı üyenin fotoğrafı phpogreniyorum
      tek olarak bumu geliyor sadece bu geliyorsa

      <?php 
      echo current(array("id"=>1000000318 ));
      ?>


      yada kodlamanı buraya koy detaylı göstereyim
      12 yıl önce yazılmış