• 05-09-2009, 16:59:55
    #1
    Üyeliği durduruldu
    arkadaşlar bir sayfadaki tüm linkleri almak istiyorum..

    .
    .
    .
    preg_match_all('#<a href="(.*?)">(.*?)<\/a>#si', $bol[0], $link);
    
    print_r($link[1]);
    yukarıdaki kod ile array i yazdırabiliyorum ekrana. bir sorun yok. fakat for ile işlem yaptığımda tüm linklerin sonuna "1" ekliyor. anlayamadım nedenini.


    .
    .
    .
    preg_match_all('#<a href="(.*?)">(.*?)<\/a>#si', $bol[0], $link);
    
    for($i=0;$i<=(count($link[1]) - 1);$i++){
    $l[$i] = link[1][$i];
    }
    burada sorun nedir? veya dediğim şeyi nasıl yapabilirim? çok yaptım bu tür işlemleri ama verinin sonuna "1" eklediğini ilk defa görüyorum...

    teşekkürler...
  • 05-09-2009, 17:07:16
    #2
    preg_match_all iki dizi döndürür, siz tek dizi almaya çalıştığınız için ekrana 1 (true) basıyor. Şöyle deneyin $link[0][1]
  • 05-09-2009, 17:10:59
    #3
    Üyeliği durduruldu
    Enigmatic adlı üyeden alıntı: mesajı görüntüle
    preg_match_all iki dizi döndürür, siz tek dizi almaya çalıştığınız için ekrana 1 (true) basıyor. Şöyle deneyin $link[0][1]
    preg_match_all('#<a href="(.*?)">(.*?)<\/a>#si', $bol[0], $link);

    burada hem linkleri hemde <a></a> tagları arasında kalan kısmı almıyor mu? linkleri gösteren kısım da $link[1] dizisidir. bende bu diziyi kullanmaya çalışıyorum.

    60 adet link var ve bu linkleri altalta yazdırmak istiyorum. ve ayrıca bunları baska bir değişkene atayacak.

    $l[0] = $link[1][0];
    $l[1] = $link[1][1];
    .
    .
    .
    gibi
  • 05-09-2009, 17:17:53
    #4
    Şu şekilde deneyin, ben evet dediğiniz gibi oluyor, ben örnek verdim sadece, 1 ile alıyorsanız 1 kullanın, aşağıdaki kod bende düzgün çalışıyor..


    $baglan = file_get_contents('http://www.ekolay.com');
    
    preg_match_all('#a href="(.*?)"#i',$baglan,$linkler);
    
    for($i=0;$i<=count($linkler[1]);$i++){
    
    echo $linkler[1][$i].'<br />';
    
    }
  • 05-09-2009, 17:32:07
    #5
    Üyeliği durduruldu
    tmm oldu.. gerçekten çok teşekkür ederim...
  • 06-09-2009, 01:45:27
    #6
    Üyeliği durduruldu
    başka bir preg_match_all sorunu var, ayrı bir konu açmayayım dedim;

    	preg_match_all('/<strong>(.*?)<\/td>/Ui', $file, $aaa);
    
    print_r($aaa[0]);

    <td bgcolor="#cccccc" style="border-bottom:1px solid #999999;border-top:1px solid #999999;" valign="top" width="50%"><strong>Game description:</strong> A new and fun game of tetris that includes kiddie characters you'll surely love!</td>
    			<td bgcolor="#cccccc" style="border-bottom:1px solid #999999;border-top:1px solid #999999;" valign="top" width="50%"><strong>Game controls:</strong> Arrow Keys - To move.</td>
    bu kodların bulundugu sayfadan <strong></td> arasında bulunan kısımları almak istiyorum.

    ama sadece 1.si çıkıyor. 2. si boş dönüyor. bunun sebebi ne olabilir??

    Çıktı

    Array ( [0] => Game description: Shoot the incoming enemy shapes as you setup a wall to protect the planet. Similar to Invaders. [1] => Game comments: [2] => Add this game to your web page!
    Copy this code to your page )
  • 06-09-2009, 13:00:42
    #7
    [KaDeSigN] adlı üyeden alıntı: mesajı görüntüle
    başka bir preg_match_all sorunu var, ayrı bir konu açmayayım dedim;

        preg_match_all('/<strong>(.*?)<\/td>/Ui', $file, $aaa);
    
    print_r($aaa[0]);
    <td bgcolor="#cccccc" style="border-bottom:1px solid #999999;border-top:1px solid #999999;" valign="top" width="50%"><strong>Game description:</strong> A new and fun game of tetris that includes kiddie characters you'll surely love!</td>
                <td bgcolor="#cccccc" style="border-bottom:1px solid #999999;border-top:1px solid #999999;" valign="top" width="50%"><strong>Game controls:</strong> Arrow Keys - To move.</td>
    bu kodların bulundugu sayfadan <strong></td> arasında bulunan kısımları almak istiyorum.

    ama sadece 1.si çıkıyor. 2. si boş dönüyor. bunun sebebi ne olabilir??

    Çıktı

    Array ( [0] => Game description: Shoot the incoming enemy shapes as you setup a wall to protect the planet. Similar to Invaders. [1] => Game comments: [2] => Add this game to your web page!
    Copy this code to your page )
    Kod çalışıyor bi sorun yok, bende 2 sonuç dönderdi.
  • 06-09-2009, 14:18:34
    #8
    Üyeliği durduruldu
    kardeş ona tekrar bakacam. ama bu sefer baska bir sorunum var..

    for döngüsüyle verileri alıyorum. diyelim ki 50 tane veriyi alıyorum. bu 50 veriden 2 veya 3 tanesinde böle bi hata veriyor. hepsi için ztn aynı işlemi yapıyor. neden o 2-3 tanesinde böle bi hata verir ki?

    Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /home/aaaaa/public_html/2.php on line 36

    böle bi hata neden verir??
  • 06-09-2009, 18:03:13
    #9
    Üyeliği durduruldu
    dosya adı boş olamaz diyor tüm linkleri aldıktan sonra
    file_get ile çekerken boş mu değil mi diye bir denetim yaptırabilirsin geçerli bir url mi değil mi diye