• 09-01-2015, 13:14:11
    #1
    Merhaba arkadaşlar,
    Aşağıda kodları verdim. array_merge_recursive, array_replace_recursive ikisini de denedim array_merge_recursive saglıklı çalışmıyor sadece ilk array in değerlerini döndürüyor. onda sonraki array degerlerini basmıyor. array_replace_recursive ise ilk dizi 190. degerde bitiyorsa ikinci diziye geçtiginde $kategoriler[2][191]=$kategoriyb[2][191] oluyor $kategoriler[2][191]=$kategoriyb[2][1] olması gerekiyor. ve ücüncü dizi hiç başlamıyor. yardımcı olabilecek var mı?
    Preg_match ve preg_match_all sorun yok bunlarda dizi birleştirmeden önce her degeri basıyor onlarda sorun yok.
    $bir = file_get_contents('zyabanci.htm');
    $iki = file_get_contents('zyerli.htm');
    $uc = file_get_contents('zydizi.htm');
    preg_match('~<div id="sidebar">([\r\n]*.*?)<div id="footer">~si',$bir,$veriyb);
    preg_match('~<div id="sidebar">([\r\n]*.*?)<div id="footer">~si',$iki,$veriyr);
    preg_match('~<div class="ana_baslik"><a href=".*?/category/eski-diziler">Eski Yerli Diziler</a></div>([\r\n]*.*?)<div class="cleared"></div>~si',$uc,$veries);
    preg_match_all('~<a href=.*?\/category\/(.*?)\/><div.*?>([A-Za-z-ğüşçöıĞÜŞÇÖİ\d\s\'\:\.\"\?\(\)\/\&amp;\’]+)<\/div>.*?</a>~is',$veries[1],$kategories);
    preg_match_all('~<a href=.*?\/category\/(.*?)\/><div class="kucuk-liste">([A-Za-z-ğüşçöıĞÜŞÇÖİ\d\s\'\:\.\"\?\(\)\/\&amp;\’]+)<\/div>~is',$veriyb[1],$kategoriyb);
    preg_match_all('~<a href=.*?\/category\/(.*?)\/><div class="kucuk-liste">([A-Za-z-ğüşçöıĞÜŞÇÖİ\d\s\'\:\.\"\?\(\)\/\&amp;\’]+)<\/div>~is',$veriyr[1],$kategoriyr);
    $kategoriler=array_replace_recursive($kategories,$kategoriyb,$kategoriyr);
    echo $kategoriler[2][190];
  • 10-01-2015, 11:35:31
    #2
    yardımcı olabilecek yokmu arkadaşlar.
  • 10-01-2015, 12:04:22
    #3
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar,
    Aşağıda kodları verdim. array_merge_recursive, array_replace_recursive ikisini de denedim array_merge_recursive saglıklı çalışmıyor sadece ilk array in değerlerini döndürüyor. onda sonraki array degerlerini basmıyor. array_replace_recursive ise ilk dizi 190. degerde bitiyorsa ikinci diziye geçtiginde $kategoriler[2][191]=$kategoriyb[2][191] oluyor $kategoriler[2][191]=$kategoriyb[2][1] olması gerekiyor. ve ücüncü dizi hiç başlamıyor. yardımcı olabilecek var mı?
    Preg_match ve preg_match_all sorun yok bunlarda dizi birleştirmeden önce her degeri basıyor onlarda sorun yok.
    $bir = file_get_contents('zyabanci.htm');
    $iki = file_get_contents('zyerli.htm');
    $uc = file_get_contents('zydizi.htm');
    preg_match('~<div id="sidebar">([\r\n]*.*?)<div id="footer">~si',$bir,$veriyb);
    preg_match('~<div id="sidebar">([\r\n]*.*?)<div id="footer">~si',$iki,$veriyr);
    preg_match('~<div class="ana_baslik"><a href=".*?/category/eski-diziler">Eski Yerli Diziler</a></div>([\r\n]*.*?)<div class="cleared"></div>~si',$uc,$veries);
    preg_match_all('~<a href=.*?\/category\/(.*?)\/><div.*?>([A-Za-z-ğüşçöıĞÜŞÇÖİ\d\s\'\:\.\"\?\(\)\/\&amp;\’]+)<\/div>.*?</a>~is',$veries[1],$kategories);
    preg_match_all('~<a href=.*?\/category\/(.*?)\/><div class="kucuk-liste">([A-Za-z-ğüşçöıĞÜŞÇÖİ\d\s\'\:\.\"\?\(\)\/\&amp;\’]+)<\/div>~is',$veriyb[1],$kategoriyb);
    preg_match_all('~<a href=.*?\/category\/(.*?)\/><div class="kucuk-liste">([A-Za-z-ğüşçöıĞÜŞÇÖİ\d\s\'\:\.\"\?\(\)\/\&amp;\’]+)<\/div>~is',$veriyr[1],$kategoriyr);
    $kategoriler=array_replace_recursive($kategories,$kategoriyb,$kategoriyr);
    echo $kategoriler[2][190];
    Array_push(), array_slice() ve sadece array_merge() denediniz mi ? Ve birlistirken $dizi1 + $dizi2 seklinde kullanmaniz daha mantikli olacaktir.
  • 10-01-2015, 12:10:37
    #4
    kingofseo adlı üyeden alıntı: mesajı görüntüle
    Array_push(), array_slice() ve sadece array_merge() denediniz mi ? Ve birlistirken $dizi1 + $dizi2 seklinde kullanmaniz daha mantikli olacaktir.
    http://paste2.org/H3t55byy kodların orjinalini buraya yazdım. ekrana bişey vermedi ben mi kullanamadım birde siz deneyebilir misiniz.
  • 10-01-2015, 12:18:51
    #5
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    http://paste2.org/H3t55byy kodların orjinalini buraya yazdım. ekrana bişey vermedi ben mi kullanamadım birde siz deneyebilir misiniz.
    Denermisiniz;

    function curl_cek($url){
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, FALSE); //Çıktıda header bilgilerinin görüntülenip görüntülenmiyceğidir.false görüntülemez true görüntüler
    curl_setopt($ch, CURLOPT_NOBODY, FALSE); //Buda çıktıda html kodlarının görüntülenip görüntülenmiyceğidir.true görüntülemez false görüntüler
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt ($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');
    curl_setopt($ch, CURLOPT_ENCODING, "");
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 1);
    $rmx = curl_exec($ch);
    curl_close($ch);
    return $rmx;
    }
    
    $bir = curl_cek('http://www.harikadizi1.com/category/yabanci-diziler/');
    $iki = curl_cek('http://www.harikadizi1.com/category/yerli-diziler/');
    $uc = curl_cek('http://www.harikadizi1.com/');
    preg_match('~<div id="sidebar">([\r\n]*.*?)<div id="footer">~si',$bir,$veriyb);
    preg_match('~<div id="sidebar">([\r\n]*.*?)<div id="footer">~si',$iki,$veriyr);
    preg_match('~<div class="ana_baslik"><a href=".*?/category/eski-diziler">Eski Yerli Diziler</a></div>([\r\n]*.*?)<div class="cleared"></div>~si',$uc,$veries);
    preg_match_all('~<a href=.*?\/category\/(.*?)\/><div.*?>([A-Za-z-ğüşçöıĞÜŞÇÖİ\d\s\'\:\.\"\?\(\)\/\&amp;\’]+)<\/div>.*?</a>~is',$veries[1],$kategories);
    preg_match_all('~<a href=.*?\/category\/(.*?)\/><div class="kucuk-liste">([A-Za-z-ğüşçöıĞÜŞÇÖİ\d\s\'\:\.\"\?\(\)\/\&amp;\’]+)<\/div>~is',$veriyb[1],$kategoriyb);
    preg_match_all('~<a href=.*?\/category\/(.*?)\/><div class="kucuk-liste">([A-Za-z-ğüşçöıĞÜŞÇÖİ\d\s\'\:\.\"\?\(\)\/\&amp;\’]+)<\/div>~is',$veriyr[1],$kategoriyr);
    $kategoriler=array($kategories + $kategoriyb + $kategoriyr);
    print_r( $kategoriler);
  • 10-01-2015, 12:21:26
    #6
    kingofseo adlı üyeden alıntı: mesajı görüntüle
    Denermisiniz;
    olmadı hocam boş ekran çıktı.
  • 10-01-2015, 12:27:14
    #7
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    olmadı hocam boş ekran çıktı.
    Bende oldu dizi ekrani cikti denedim hatta foreach ile yazdirabilirsiniz.
  • 10-01-2015, 12:34:33
    #8
    hocam şimdi bir yeri eksik koymusum verdi çıktı ama hocam sadece eski dizilerin çıktısını verdi. $kategories dizesinin degerlerini cıkardı digerlerini vermedi $kategoriyb ve $kategoriyr çıkartmadı.
  • 10-01-2015, 12:37:59
    #9
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    hocam şimdi bir yeri eksik koymusum verdi çıktı ama hocam sadece eski dizilerin çıktısını verdi. $kategories dizesinin degerlerini cıkardı digerlerini vermedi $kategoriyb ve $kategoriyr çıkartmadı.
    Yeni dizileri'de cekmeniz lazim $veries de sadece eski diziler dönüyor.