Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
1513
Tıklama
0
Öne Çıkarma
preg_match_all kullanarak istenilen kısımın alınması
P
13 yıl (716 mesaj)
Teğmen
Konu Sahibi

http://futbol.superstadyum.net/

bu sitede kaynak kodunda
<div class="wrapper">


</div>
arasındaki kodlardan yayın linklerini almam lazım ve bu yayın linkleri
 
<a href='http://futbol.superstadyum.net/174522/sao-paulo-fc-ponte-preta-macini-canli-izle' target='_blank'>Kanal 1</a> -
<a href='http://futbol.superstadyum.net/174482/sao-paulo-fc-ponte-preta-macini-canli-izle' target='_blank'>Kanal 2</a> -
<a href='http://futbol.superstadyum.net/174487/sao-paulo-fc-ponte-preta-macini-canli-izle' target='_blank'>Kanal 3</a> -
<a href='http://futbol.superstadyum.net/174488/sao-paulo-fc-ponte-preta-macini-canli-izle' target='_blank'>Kanal 4</a> -
<a href='http://futbol.superstadyum.net/174489/sao-paulo-fc-ponte-preta-macini-canli-izle' target='_blank'>Kanal 5</a>


gibi mesala, burdaki canlı-izle ile biten linkleri alarak bir değişkene atamam lazım siz sadece almayı öğretseniz gerisini ben halladebilirim sanırım

kodlarım

 
<?php
include 'baglan.php';
$site = 'http://futbol.superstadyum.net/';
$Baglan = baglan($site);
preg_match_all('@<div class="wrapper">>(.*?)</div>@siU',$Baglan,$Kanallar);
yaz($Kanallar) ?>


[size=4]bir türlü olmuyor / ve \ işaretleri ile birşeyler yapılıyor sanırım bu / \ işaretlerin mantığınıda bilmiyorum



H
13 yıl (3 mesaj)
Er

Hiç mantığa gerek yok sadece biraz mantık yürütmek lazım bilgi seviyeni bilmediğimden biraz acemi gibi davranıcam bütün kodları açıklayarak aklındaki soru işaretlerini kaldırmaya çalışıcam.
 
<?php
$site = file_get_contents("http://futbol.superstadyum.net/"); // Siteye Bağlanır
$sozcuk = "#<div class=\"div_kanallar\">\s*<a href='(.*?)' target='_blank'>(.*?)</a>\s*</div>#si";
$bsozcuk = "#<div class=\"div_baslik\">\s*<div class=\"div_bayrak\"><img src=\"(.*?)\" style=\"vertical-align: middle;padding-right:2px;\" /></div><b>(.*?)</b></div>#";
preg_match_all($sozcuk,$site,$cikti); // Sözcük kriterine uygun olarak siteyi tarar $cikti olarak verir
preg_match_all($bsozcuk,$site,$cikti2); // BSözcük kriterine uygun olarak siteyi tarar $cikti olarak verir
$sayi = count($cikti); // Çıktı Sayısını Sayar
for($s=0; $s<$sayi; $s++){ // Burası Çıktı sayısı kadar döngü oluşturur
$link = $cikti[1][$s];
$kanal = $cikti[2][$s];
$baslik = $cikti2[2][$s];
?>
<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=71462431&url=<?=$link;?>" data-href="<?=$link;?>"><?=$baslik;?><?=$kanal;?></a><br/> <!-- Yazdırır ->
<?php } ?>

Burada bilmen gerekenler \s* arada boşluk veya herhangi bir karakter varsa direk geçer (.*?) seçme işini yapar sonundaki #si preg_match_all ifadesidir. $cikti[arraynumarası][Sayı] şeklinde çalışır ilk <a href='(.*?)' olduğu için $link = $cikti[1][$s]; dediğimizde her döngüde kendine ait linki çekicektir. kendi localhostumda denedim eğer yanlış anlamamışsam sorunsuz çalışıyor
Edit : fonksiyon kullanma hiç gerek yok file_get_contents("http://futbol.superstadyum.net/"); aynı görevi görür





< Bu mesaj bu kişi tarafından değiştirildi hakk1 -- 9 Şubat 2013; 8:06:50 >
Bu mesaja 1 cevap geldi.
P
13 yıl (716 mesaj)
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: hakk1

Hiç mantığa gerek yok sadece biraz mantık yürütmek lazım bilgi seviyeni bilmediğimden biraz acemi gibi davranıcam bütün kodları açıklayarak aklındaki soru işaretlerini kaldırmaya çalışıcam.
 
<?php
$site = file_get_contents("http://futbol.superstadyum.net/"); // Siteye Bağlanır
$sozcuk = "#<div class=\"div_kanallar\">\s*<a href='(.*?)' target='_blank'>(.*?)</a>\s*</div>#si";
$bsozcuk = "#<div class=\"div_baslik\">\s*<div class=\"div_bayrak\"><img src=\"(.*?)\" style=\"vertical-align: middle;padding-right:2px;\" /></div><b>(.*?)</b></div>#";
preg_match_all($sozcuk,$site,$cikti); // Sözcük kriterine uygun olarak siteyi tarar $cikti olarak verir
preg_match_all($bsozcuk,$site,$cikti2); // BSözcük kriterine uygun olarak siteyi tarar $cikti olarak verir
$sayi = count($cikti); // Çıktı Sayısını Sayar
for($s=0; $s<$sayi; $s++){ // Burası Çıktı sayısı kadar döngü oluşturur
$link = $cikti[1][$s];
$kanal = $cikti[2][$s];
$baslik = $cikti2[2][$s];
?>
<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=73564229&url=<?=$link;?>" data-href="<?=$link;?>"><?=$baslik;?><?=$kanal;?></a><br/> <!-- Yazdırır ->
<?php } ?>

Burada bilmen gerekenler \s* arada boşluk veya herhangi bir karakter varsa direk geçer (.*?) seçme işini yapar sonundaki #si preg_match_all ifadesidir. $cikti[arraynumarası][Sayı] şeklinde çalışır ilk <a href='(.*?)' olduğu için $link = $cikti[1][$s]; dediğimizde her döngüde kendine ait linki çekicektir. kendi localhostumda denedim eğer yanlış anlamamışsam sorunsuz çalışıyor
Edit : fonksiyon kullanma hiç gerek yok file_get_contents("http://futbol.superstadyum.net/"); aynı görevi görür

çok teşekkür ederim saolsın



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.