PHP ile Link Kontrol Etme
Aşağıdaki fonksiyon ile php ile bir linkin gerçek bir link olup olmadığını kontrol edebilirsiniz, fonksiyon, link geçerli bir link ise true, değilse false değeri döndürecektir.
<?php function is_valid_url ( $url ) { $url = @parse_url($url); if ( ! $url) { return false; } $url = array_map('trim', $url); $url['port'] = (!isset($url['port'])) ? 80 : (int)$url['port']; $path = (isset($url['path'])) ? $url['path'] : ''; if ($path == '') { $path = '/'; } $path .= ( isset ( $url['query'] ) ) ? "?$url[query]" : ''; if ( isset ( $url['host'] ) AND $url['host'] != gethostbyname ( $url['host'] ) ) { if ( PHP_VERSION >= 5 ) { $headers = get_headers("$url[scheme]://$url[host]:$url[port]$path"); } else { $fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 30); if ( ! $fp ) { return false; } fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $url[host]\r\n\r\n"); $headers = fread ( $fp, 128 ); fclose ( $fp ); } $headers = ( is_array ( $headers ) ) ? implode ( "\n", $headers ) : $headers; return ( bool ) preg_match ( '#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers ); } return false; } $linkler=array ("<a href="http://www.site.com","http://www.site.com/","www.site.com","site.com","https://www.site.com","https://www.site.com/","ftp://site.com","ftp://site.com/">http://www.site.com","http://www.site.com/","www.site.com","site.com","https://www.site.com","https://www.site.com/","ftp://site.com","ftp://site.com/</a>"); //kontrol için linkleri arka arkaya dizdik foreach ($linkler as $kontrol) { // teker teker tüm linkleri kontrol edelim şimdi echo is_valid_url($kontrol)?strip_tags($kontrol)." geçerli bir linktir":strip_tags($kontrol)." geçerli bir link değildir"; echo "<br />"; } ?>
Slm.benim kendime ait link dizin sitem var.Sitemde 2 tane aynı url adresi olsun istemiyorum.farz edelim ben herhangi bir siteyi siteme kayıt ettim aradan 1 ay veya bilemedin 1 yıl geçti ve site sini eklediğim kişi gene siteye geldi ve sitesini kayıt ettirmek için formu doldurup gönderecek bu kişi daha önceden benim siteye sitesini eklediğini unutmuş ve tekrar formu doldurup göndermek istiyor.doldurup gönderdiği zaman ayrı pencerede pop up bilgilendirme mesajı olarak bu site daha önceden eklenmiştir uyarısı ile karşılaşsın bu şekilde bir php kodu ile hazırlanmış url kontrolü istiyorum yardımcı olursanız çok sevinirim.
Veri tabanınıza ve kullandığınız scripte özel kod yazmak gerekir. PHP ve SQL bilginiz varsa veri tabanınızda basit bir sorgu ile (select pk from tabloadi WHERE url=’urladresi.com’ gibi) daha önce url adresinin kayıtlı olup olmadığını görmeniz mümkün. popup kodu da basit javascript kodu ile çözülebilir, php bilgisi gerektirmez. PHP bilginiz yeterli değil ise veri tabanından url nin tutulduğu alanı unique olarak işaretlerseniz, aynı url 2 kere kayıt edilemez.
hocam bunu misal 10 sitede linkimiz var bunları kontrol etmesi amacıyla kullanabilir miyiz.
Kodun altında dizi olarak verilmiş linkleri nasıl kontrol edebileceğimizi yazdım. Siz kendinize göre değiştirip dediğiniz işi yaptırabilirsiniz.
Paylaşımınız için teşekkür ederim. Kullanışlı bir fonksiyon olmuş. Kullanmaya başladım 🙂