WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Linux, UNIX, Open Source (http://www.wcm.at/forum/forumdisplay.php?f=13)
-   -   >800 Dateien ändern (http://www.wcm.at/forum/showthread.php?t=113657)

jak 28.10.2003 19:37

>800 Dateien ändern
 
Selbe Situation wie da: http://www.wcm.at/forum/showthread.php?threadid=114431

Gibt es eine Methode um in vielen Dateien folgendes zu ändern:
"Wenn das was rechts von WIDTH= zwischen " und " steht größer als 800 ist soll es, und das was nach HEIGHT= zwischen " und " steht halbiert werden.

Bin für jeden tip dankbar

Jak

käptn 28.10.2003 20:19

Steht height immer nach width?

~

jak 28.10.2003 20:47

Ja, eine Zeile hat immer diese Form:
[img]irgendetwas[/img]
z.B.:
[img]large/photo.jpg[/img]

Jak

käptn 29.10.2003 00:54

PHP-Code:

$path '/my/path/'// trailing slash!

function _w($w,$h)
{
    if (
$w 800) {
        
$w round($w/2);
        
$h round($w/2);
    }

    return 
' width="' $w '" height="'$h .'" ';
}

$dir dir($path);
while (
$file $dir->read()) {
    
$file $path.$file;
    if(
is_dir($file)) continue;
    
$new preg_replace(
        
'/\\swidth="?(\\d+)"?\\s+height="?(\\d+)"?/ie',
        
'_w(\\\\1,\\\\2)',
        
implode(''file($file))
    );

    
$fh fopen($file'w');
    
fputs($fh$new);
    
fclose($fh);


Ähnlich in Perl, wahrscheinlich etwas kürzer...

~

jak 30.10.2003 17:03

Vielen Dank, hat einwandfrei funktioniert. (Obwohl sich ein Tippfehler eingeschlichen hat:
Code:

if ($w > 800) {
        $w = round($w/2);
        $h = round($h/2); //nicht $w/2
    }

Jak


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag