Bu işi bilmeyenler için mantığı anlatmak adına çok güzel bir ders.
Fakat @ByTriSLaSiS dediği gibi bu iş kullanılacak iki fonksiyon var. (preg_match() preg_match_all()). Explode basit sitelerde veya elverişli sitelerde kullanılabilir. Mesela, Google'dan Y sitenin aramasının kaç sonuç verdiği explode() ile yapılabilir. Ancak arama sonucundaki siteleri almak için preg_match_all kullanmak en sorunsuzudur.
Video'da gösterilen <title> alma işlemi preg_match_all ile şu şekilde alınabilir;
# $http = file_get_contents ile okuduğumuz veri
# $obj = preg_match_all ile eşleşen verinin tanımlanacağı array değişkeni
if (preg_match_all("/(<tilte>.*<\/title>)/", $http, $obj))
{
print_r($obj)
}Video'daki şeyleri öğrendikten sonra herşeyi öğrendim sanmayın. Bu iş için PHP Class (Sınıfı) yazın. İşinizi %50 hızlandırın.
Sitenin sitemap.xml dosyasını bulabiliyorsanız, indirilecek olan url'lerin listesini oradan alıyorsunuz. Yok ise, bu sefer o listeyi kendiniz alıyorsunuz.
İşlemleri kısaca şöyle;
1- index.php'yi al
2- index.php içinde <a href='.*site.com\/(.*)'>(.*)</a> araması ile site içi adresleri alıyorsunuz
3- Aldığınız adresleri bir array değişkeni içerisine atıyorsunuz.
4- array içindeki adresleri tek tek 1. adımda olduğu gibi alıyorsunuz ve işlem tekrarlamaya başlıyor.
Dikkat edilmesi gereken şeylerden biri daha önce işlenen bir adresin tekrar işlenmemesi. bunun için in_array() fonksiyonu var. Eğer adres array() içinde var ise o adresi es geçiyorsunuz.
Biraz kendiniz bir şeyler deneyin, demek istediğimi anlayacaksınız.