İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Dosyanın olup olmadığını sorgulamak Çoklu ?

hotr1de

0
İyinet Üyesi
Katılım
27 Eylül 2006
Mesajlar
554
Reaction score
0
PHP:
$sorgu = mysql_query ( "SELECT * FROM videos" );
while ( $oku = mysql_fetch_assoc ( $sorgu ) ) {
echo "http://xxx.com/dosya/$oku[yt_id].flv <br>\n";
}

Yukarıdaki gibi tablodaki verileri listeliyorum ve şu şekilde bir liste oluşuyor:
.flv dosyaların olup olmadığını kontrol edip olanlarla olmayanları ayırmam gerek ( olmayanlar kırmızıyla gösterilebilir yada yanına bir yıldız konulabilir )

yaklaşık 1400 veri var bu şekilde nasıl bu dosyaların olup olmadığını kontrol edebilirim ?
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
xxx.com yerel bir domain mi, başka bir sunucuda mı?
 

OnurSQL

0
İyinet Üyesi
Katılım
29 Mart 2005
Mesajlar
2,025
Reaction score
1
Konum
ankara
Dosya kendi sunucunda ise file_exists değilse get_headers ile http isteği yollayıp gelen bilgiye göre işlem yaptırabilirsin.
 

hotr1de

0
İyinet Üyesi
Katılım
27 Eylül 2006
Mesajlar
554
Reaction score
0
teşekkürler arkadaşlar çalıştırdım sonunda, başkalarına lazım olur diye kod aşağıda ama çok uzun sürüyor kontrol etme işlemi limit vermek gerekiyor bu yüzden
PHP:
$sorgu = mysql_query ( "SELECT * FROM videos" );
while ( $oku = mysql_fetch_assoc ( $sorgu ) ) {
if ( get_headers ( "http://xxx$oku[yt_id].flv" ) ) {

echo "dosya var<br>\n";
}
else {
echo "http://xxx/$oku[yt_id].flv <br>\n";
}
}
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
O şekilde olacağını sanmıyorum. Onun için adresi açamıyor olması lazım. Adres açılıyor ve dosya yoksa (404 filansa yani) yine de buluyorum der.

while ( $oku = mysql_fetch_assoc ( $sorgu ) ) {
$baslik = get_headers ( "http://xxx$oku[yt_id].flv" );

if (eregi('200',$baslik[0])) {
echo "$oku[yt_id] - status code 200 bulundu";
}

else {
echo "$oku[yt_id] - status code $baslik[0] hata olabilir";
}

}
 

desoLate

0
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
0
Alternatif bir yol olarak şöyle de olabilir; tabloda bir sutun daha açılır, otomatik olarak belirli bir periyodda çalışacak bir sayfa hazırlanır, get_headers ile veya file_exists ile kontrol ettirilerek sonuç, tablodaki alana yazdırılır. Böylece makine yükü daha azaltılmış olabilir.
 

hotr1de

0
İyinet Üyesi
Katılım
27 Eylül 2006
Mesajlar
554
Reaction score
0
Evet haklısın küçük çaplı bir deneme yapmıştım dosyayı bulduğu içinde çalıştığını düşündüm peki bu senin yazdığın 200 nedir ?
hata sayfasının değeri 404 olduğu gibi çalışanında 200 mü ?


Edit: verdiğin kod çalıştı beni gerçekten çok büyük bir angaryadan kurtardın teşekkürler ;)
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
200 HTTP OK, uygulayabildim demek. Tam yüzde yüz emin değilim 200'den başka var mı, ondan else kismina sorun olabilir diye ekledim. Genelde 404 ve 200 heralde ihtiyacın olanlar, acaip birşey çıkarsa o kodun anlamına bakabilirsin netten emin olmak için, baya bir status kod var çünkü
 

tiva

0
İyinet Üyesi
Katılım
20 Eylül 2003
Mesajlar
2,741
Reaction score
4
eğer local de ise ilgili dizinin listesini bir kere alır (php 4 de "readdir", php 5 de "scandir") öyle karşılaştırırdım dosya var mı yok mu daha hızlı olurdu diye düşünüyorum.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst