özyinelemeli modunda bir dir (çaylak) tüm görüntülerde php çalıştırmak fonksiyonu

3 Cevap php

hey guyz i bir işlevi var

 $result = create_watermark( 'input_file_name' ,'output_file_name');

i 500 bu görüntüleri ve tüm görüntüleri n var / görüntüler olarak adlandırılan dir şimdi ben döngü fonksiyon aracılığıyla onları çalıştırmak isteyen ve / markedimage/images_1.png images_2.png gibi koymak üzerinden istediğiniz bağlantı images_ (some_unknown_numbers). png (tüm png) olan var images_3.png

i döngü onları çalıştırmak nasıl yardım ve nasıl söndürmek ismi değiştirebilirsiniz gerekir

Ubuntu üzerinde istediğiniz çalışacak komut böylece biz de kabuk kullanabilirsiniz

herhangi bir vücut fonksiyonlarını kontrol istiyorsanız burada

http://paste2.org/p/789149

i acemi m çünkü plz bana kod sağlamak

şimdiden teşekkürler

3 Cevap

Ben çıktı dosyaları için yeniden dizin numaralarını isteyip emin değilim. Bu örnek, onları korumak gerekir:

<?php
$dir = './sourceDir';
$outputDir = './markedimage';

//get files matching pattern. maybe you could use glob() instead
$files = scandir($dir);
$files = preg_grep('~^images_\d+.png$~i', $files);

//process each file
foreach ($files as $file) {
     create_watermark( $dir . '/' . $file, $outputDir . '/' . $file);
}

Denenmemiş ama bu çok çalışması gerekir:

// Iterate over all filesystem objects in /images
foreach( new DirectoryIterator('/images') as $file ) {
    // check if item is a readable file
    if( $file->isFile() && $file->isReadable() ) {
        // give debug message so we know what the script is doing
        echo "Watermarking $file \n";
        // call your function
        create_watermark(
            // argument 1 is the full path to the image
            $file->getPathname(),
            // argument 2 is the destination folder plus the filename w/out path
            '/markedimage/' . $file->getFilename()
        );
    // tell us if it is not a readable file
    } else {
        echo "Skipped $file \n";
    }
}

Dosyaları png olmayan klasördeki dosyalar varsa, yerine DirectoryIterator ve GlobIterator kullanabilirsiniz, ancak bu PHP5.3 gerektirir.

Görmek

i 2 cevap kullanılır

çalışan bir

<?php

foreach (glob("*.png") as $filename) {
    create_watermark($filename, '/watermarked_dir/' . $filename);
}
?>

Bu sorunun cevabı herhangi bir değişiklik olmadan çalıştı: D thankx ama im kayıtlı değil çünkü ben bunun için oy veremiyorum

@ 1 im çalışma yapmak için başarısız oldu ama bu i üzerinde biraz çaba koyarsanız işe shud düşünüyorum

<?php
$dir = './sourceDir';
$outputDir = './markedimage';

//get files matching pattern. maybe you could use glob() instead
$files = scandir($dir);
$files = preg_grep('~^images_\d+.png$~i', $files);

//process each file
foreach ($files as $file) {
     create_watermark( $dir . '/' . $file, $outputDir . '/' . $file);
}

?>

denedim ve bana tahsis yardımcı i son 5 saat bu şekilde yapmaya çalışacağım ama o beş dakika içinde çözüldü onu başarısız guyz için thankx

: D thankxxx

Steve