Merhabalar, şu şekilde bir ihtiyacım var.
Yeni bir index.php dosyasına 2 tane input eklediğimi düşünelim.
1. "url" id'li inputa link giriyorum.
2. "sayi" id'li inputa bir sayı değeri giriyorum. Çalıştır butonuna tıklıyorum.
1. örnek: site.com/dosyalar/
2.örnek: 121
istediğim çıktının yapacağı işlem: Url'yi alıp sonuna 2. inputta girdiğim sayı değerine kadar artırarak jpg türünde herhangi bir isimli klasöre indirmesi olacak.
Yani:
site.com/dosyalar/1.jpg
site.com/dosyalar/2.jpg
....
site.com/dosyalar/51.jpg
...
site.com/dosyalar/121.jpg (sonuncu değer)
şeklinde oluşan linklerdeki görselleri herhangi bir klasöre indirecek.
Bu çok çok zor bir işlem değilse yardımcı olabilir misiniz?
PHP Birden Fazla Resim İndirtme
8
●203
- 01-09-2020, 21:36:37Kimlik doğrulama veya yönetimden onay bekliyor.
<?php if ( isset ( $_POST['resim_submit'] ) ) { for( $k = 0; $k <= $_POST['sayi']; $k++) { $url = $_POST['url']; file_put_contents($k, file_get_contents($url)); } } ?> <form method="post"> <input type="text" name="url" <?= isset ( $_POST['url'] ) ? "value=\"".$_POST['url']."\" : null ?>> <input type="text" name="sayi" <?= isset ( $_POST['sayi'] ) ? "value=\"".$_POST['sayi']."\" : null ?>> <input type="submit" name="resim_submit"> </form>Kodu r10 mesaj editörü üzerinden yazdım hocam,ne yazık ki şuan deneme durumum yok. Bir hata göremedim, ama hata alırsanız bildirin tekrardan bakayım - 01-09-2020, 21:53:07Edit: Farkettimde ufak bir syntax hatası yapmışım, en sondaki tırnağı unutmuşum. Ve diğer sıkıntıysa girilen urlnin uzantısını alıp kaydetmediğimiz için muhtemelen 0,1,2,3,4,5 şeklinde kaydedecektir.
Sanırım şu şekilde daha iyi çalışacaktır.
<?php if ( isset ( $_POST['resim_submit'] ) ) { for( $k = 0; $k <= $_POST['sayi']; $k++) { $url = $_POST['url']; $explode = explode(".", $url); $ext = $k . "." . end($explode); file_put_contents($ext, file_get_contents($url)); echo "$ext <= saved!<br />"; } } ?> <form method="post"> <input placeholder="Resim URL" type="text" name="url" <?= isset ( $_POST['url'] ) ? "value=\" " .$_POST['url']. " \"" : null ?>> <input placeholder="İndirme Sayısı" type="text" name="sayi" <?= isset ( $_POST['sayi'] ) ? "value=\" " . $_POST['sayi'] . " \"" : null ?>> <input type="submit" name="resim_submit"> </form>Çok fazla aynı dosyadan işlem yapılacaksa sürekli indirme yerine tek seferlik indirme ve sonrasında kopyalama işlemi daha mantıklı olabilir. İndirerek yapılması gerekiyorsa aslında ajax ile parçalanarak yapılması daha iyi olur. Ama bu, şuanlık istediğiniz işlevi görecektir. - 01-09-2020, 21:59:17Hocam çok teşekkür ederim ellerinize sağlık sanirim url yerine sayıyı koyuyor. Ve sonuna dediğiniz gibi jpg eklemiyor gibi.Vindicta adlı üyeden alıntı: mesajı görüntüle

- 01-09-2020, 22:08:10Baz aldığım işlem şu şekildeydi:YavuzTR adlı üyeden alıntı: mesajı görüntüle
Resim url'sinin sonundaki uzantıyı alıyoruz; örnek resim urlsinin: site.com/images.png gibi bir url olduğunu düşündüm. En sondaki uzantıyı alıp ona göre işlemi yürütüyor.
Kaydetmek istediğiniz resim linki nedir, veya url yapısı nedir ? ona göre tekrar göz atayım. Eğer site.com/contents/images64/ gibi bir yapıysa, daha sağlıklı olması açısından bir input daha girelim ve uzantıyı belirtelim - 01-09-2020, 22:18:02Doğrudan örnek vereyim hocam:Vindicta adlı üyeden alıntı: mesajı görüntüle
Gireceğim url bu:
http://online.fliphtml5.com/fwspv/inlr/files/page/
Yazacağım sayı 44.
Toplam 44 tane arka arkaya gelecek şekilde url var:
http://online.fliphtml5.com/fwspv/inlr/files/page/1.jpg
http://online.fliphtml5.com/fwspv/inlr/files/page/2.jpg
..
http://online.fliphtml5.com/fwspv/in...es/page/44.jpg
Yani 44 sayfanın her biri 1.jpg 2.jpg .... şeklinde 44'e kadar aynı şekilde devam ediyor.
Yani üstteki linki yazdığım zaman belirttiğim sayıya kadar devam edip indirmesi gerekiyor. Eklediğim url'nin sonuna sadece belirttiğim sayııya kadar ekleme yaparak indirecek. - 01-09-2020, 22:45:31Şimdi daha net anladım hocamYavuzTR adlı üyeden alıntı: mesajı görüntüle

<?php if ( isset ( $_POST['resim_submit'] ) ) { if ( empty( $_POST['url'] ) || empty ( $_POST['sayi'] ) || empty ( $_POST['extension'] ) ) die('Bazı Değerler Eksik'); for( $k = 1; $k <= $_POST['sayi']; $k++) { $extension = trim($_POST['extension']); $url = trim($_POST['url'])."/$k.$extension"; $ext = $k . "." . $extension; $fix_url = str_replace('page//','page/', trim($url)); $get_contents = file_get_contents($fix_url); file_put_contents(trim($ext), $get_contents); echo "$ext <= saved! { $fix_url }<br />"; } foreach($_POST as $keys => $values) { echo "$keys => $values <br />"; } } ?> <form method="post"> <input placeholder="Resim URL" type="text" name="url" <?= isset ( $_POST['url'] ) ? "value=\"" .$_POST['url']. "\"" : null ?>> <input placeholder="İndirme Sayısı" type="text" name="sayi" <?= isset ( $_POST['sayi'] ) ? "value=\"" . $_POST['sayi'] . "\"" : null ?>> <label for="png">PNG:</label> <input type="radio" id="png" name="extension" value="png" <?= isset ( $_POST['extension'] ) && $_POST['extension'] == "png" ? "checked" : null; ?>> <label for="gif">GIF:</label> <input type="radio" id="gif" name="extension" value="gif" <?= isset ( $_POST['extension'] ) && $_POST['extension'] == "gif" ? "checked" : null; ?>> <label for="webp">WEBP:</label> <input type="radio" id="webp" name="extension" value="webp" <?= isset ( $_POST['extension'] ) && $_POST['extension'] == "webp" ? "checked" : null; ?>> <label for="jpg">JPG:</label> <input type="radio" id="jpg" name="extension" value="jpg" <?= isset ( $_POST['extension'] ) && $_POST['extension'] == "jpg" ? "checked" : null; ?>> <label for="jpeg">JPEG:</label> <input type="radio" id="jpeg" name="extension" value="jpeg" <?= isset ( $_POST['extension'] ) && $_POST['extension'] == "jpeg" ? "checked" : null; ?>> <input type="submit" name="resim_submit"> </form>Bu şekilde çalışyor olmalı. - 01-09-2020, 22:53:03Şimdi sorunsuz bir şekilde ve tam istediğim gibi çalışıyor hocam.Vindicta adlı üyeden alıntı: mesajı görüntüle
Çok vaktinizi aldım hakkınızı helal edin, Allah razı olsun çok teşekkür ederim.

