• 26-08-2009, 13:07:26
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar php dosyasının kaynagını file_get_contents le cekiyorum. bu kaynak dosya içinden preg_match_all ile sadece array olanları toplamak istiyorum ne yapmam lazım ?

    $degisken['array']
    $degisken['array']['array']

    böyle olanları

    teşekkürler
  • 27-08-2009, 03:34:40
    #2
    bunu bilmenin kesin bir yolu yok. dizi değişkenleride normal değişkenler gibi yazılmış olabilir. bir de file_get_contents ile bir php dosyasını çekip işlemeye çalışıyorsan bana yaptığın şey ne olursa olsun mantığı yanlış olabilir gibi geldi. onuda gözden geçir. sadece tecrübelerin verdiği bir his
  • 27-08-2009, 03:57:33
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    zee adlı üyeden alıntı: mesajı görüntüle
    bunu bilmenin kesin bir yolu yok. dizi değişkenleride normal değişkenler gibi yazılmış olabilir. bir de file_get_contents ile bir php dosyasını çekip işlemeye çalışıyorsan bana yaptığın şey ne olursa olsun mantığı yanlış olabilir gibi geldi. onuda gözden geçir. sadece tecrübelerin verdiği bir his
    Bi dk. yav. file_get_contents fonksiyonu dosya içeriğini HTML olarak çekmiyor mu? Yoksa PHP olarak mı? :P
  • 27-08-2009, 04:38:50
    #4
    Ne işinize yarayacak çözemedim ama
    preg_match_all('~\$([a-zA-Z0-9]+)\[\'([a-zA-Z0-9]+)\'\]\[\'([a-zA-Z0-9]+)\'\]~is',$metin,$buldum);
    $ikili=$buldum[0];
    $metin=str_replace($ikili,'',$metin);
    
    preg_match_all('~\$([a-zA-Z0-9]+)\[\'([a-zA-Z0-9]+)\'\]~is',$metin,$buldum);
    $tekli=$buldum[0];
    
    echo 'Bulunan Diziler: <br /><br />'.implode('<br />',$tekli).'<br />
    <br />'.implode('<br />',$ikili);
    buyrun $metin değişkeninden dediğiniz şekildeki dizi gösterimlerini çekiyo.

    Not: file_get_contents php kaynağını değil, php yansısı olan html kaynağını çeker. Yani echo gibi fonksiyonlar görünmez
  • 27-08-2009, 04:41:03
    #5
    Üyeliği durduruldu
    metin olarak kendi sayfanda değişkeni olarak taşıyabilirsin

    bu iş için en pratik yöntem json yada serialize

    kod ureten dosya
    Alıntı
    <?php
    $dizi["adi"] = "adi gibi bisey";
    $dizi["soyadi"] = "soyadi gibi birsey";
    echo serialize($dizi);
    ?>
    veri okuyan dosya
    Alıntı
    <?php
    $data = unserialize(file_get_contents("http://www.armut.com/veri.php"));
    ?>
  • 21-01-2010, 12:29:34
    #6
    Üyeliği durduruldu
    Biraz toleranslı regex hazırladım, regexin yakalayabilecekleri;
     $degisken['array'] = 'veri';
    
     $degisken['array'] = "veri";
    
     $degisken["array"] = "veri";
    
     $degisken["array"] = 'veri';
    
     $degisken['array'] = '';
    
     $degisken['array'] = array(1,2,3...);
    
     $degisken['array'] = 123;
    
     $degisken['array']                =         "veri";
    
     $degisken['array']="veri";
    
     $degisken['array']="ver
    asdasd
     asdi";
    <?php
    $data = '
    $x = 3;
    // bişeyler bişeyler
    $f = 5;
    if ($f < 3) pack("C*", 110);
    $degisken[\'array\'] = \'deneme\';
    $degisken[\'array\'] = \'deneme2\';
    $degisken[\'array\'][\'array\'] = \'test test\';
    // bişeyler bişeyler
    $corba = "corba";
    for ($i = 0;$i < 5; $i++) {
        $f += 1;
    }
    ';
    
    preg_match_all('~\$[a-zA-Z0-9_]+\[[\'|"]*(.+?)[\'|"]*\]+[[:space:]]*=[[:space:]]*[\'|"]?(.+?)[\'|"]?;~sim', $data, $cikti);
    echo join('<br />', $cikti[0]);
    ?>
    çıktı;
    $degisken['array'] = 'deneme';
    $degisken['array'] = 'deneme2';
    $degisken['array']['array'] = 'test test';