• 01-09-2020, 21:24:15
    #1
    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?
  • 01-09-2020, 21:36:37
    #2
    Kimlik 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:07
    #3
    Edit: 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:17
    #4
    Vindicta adlı üyeden alıntı: mesajı görüntüle
    Edit: 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.
    Hocam çok teşekkür ederim ellerinize sağlık sanirim url yerine sayıyı koyuyor. Ve sonuna dediğiniz gibi jpg eklemiyor gibi.

  • 01-09-2020, 22:08:10
    #5
    YavuzTR adlı üyeden alıntı: mesajı görüntüle
    Hocam çok teşekkür ederim ellerinize sağlık sanirim url yerine sayıyı koyuyor. Ve sonuna dediğiniz gibi jpg eklemiyor gibi.

    Baz aldığım işlem şu şekildeydi:

    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:02
    #6
    Vindicta adlı üyeden alıntı: mesajı görüntüle
    Baz aldığım işlem şu şekildeydi:

    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
    Doğrudan örnek vereyim hocam:

    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
    #7
    YavuzTR adlı üyeden alıntı: mesajı görüntüle
    Doğrudan örnek vereyim hocam:

    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.
    Şimdi daha net anladım hocam

    <?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
    #8
    Vindicta adlı üyeden alıntı: mesajı görüntüle
    Şimdi daha net anladım hocam

    <?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ı.
    Şimdi sorunsuz bir şekilde ve tam istediğim gibi çalışıyor hocam.
    Çok vaktinizi aldım hakkınızı helal edin, Allah razı olsun çok teşekkür ederim.
  • 01-09-2020, 23:01:02
    #9
    YavuzTR adlı üyeden alıntı: mesajı görüntüle
    Şimdi sorunsuz bir şekilde ve tam istediğim gibi çalışıyor hocam.
    Çok vaktinizi aldım hakkınızı helal edin, Allah razı olsun çok teşekkür ederim.
    Rica ederim hocam