IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Как сделать автозамену на рнр (https://www.imho.ws/showthread.php?t=104203)

Стефания 28.05.2006 14:43

Как сделать автозамену на рнр
 
Т.е. проблемка в том, что....мне нужно в 250-ти файлах заменить одну строчку. Как вариант....пишу скрипт для автозамены......чет нифига не работает.....вижу, что что-то не то или не туда записала, но пока не могу понять.
В общем......замена "123" на "456"

<?php
$d=opendir('.');
while ($n=readdir($d))
{
if (ereg(".php$", $n))
{

echo $n.'<br>';
$fp=fopen($n,'r');
clearstatcache();
$s=fread($fp,filesize($n)+1);
$news=str_replace('123','456',$s);

fclose($fp);

$fp=fopen($n,'w');
$news=str_replace('123','456',$s);
fwrite($fp,$s);
fclose($fp);
}
}
closedir($d);
?>

RaZEr 28.05.2006 14:47

$news никуда не записывается.

Стефания 28.05.2006 15:25

Записала так: fwrite($fp,$news);

Вроде работает :beer:
Пасибки!

О.....вот така еще проблема....делаю автозамену
$news=str_replace('(choice1,'SearchBliss Advanced Menu Generator')', '(choice1)',$s);

мне выдает ошибку "Parse error: syntax error, unexpected T_STRING in (тут ссылка на эту строку)"
и что делать?

Кажись поняла....надо поставить слеш перед '. хи....сама спросила....сама разобралась :biggrin:

smap 07.06.2006 17:15

Пора уже на php5 переходить :)

Вообщем мини класс накатал, в друг кому пригодиться ;)
Код:

<?php

class replaceFiles {

    private $array_file;
    private $ereg = "/.+/";

    function __construct( $path ) {
        $this->path = $path;
    }

    public function ereg( $ereg ) {
        $this->ereg = $ereg;
    }

    public function replace( $search, $replace ) {
        $dir = dir( $this->path );
        while( false !== ( $file = $dir->read() ) ) {
            if( $file != "." and $file != ".." and !is_dir( $file ) ) {
                if( $this->path != "." or $file != basename( __FILE__ ) ) {
                    if( preg_match( $this->ereg, $file ) ) {
                        file_put_contents( "{$this->path}/$file", preg_replace( $search, $replace,
                                            file_get_contents( "{$this->path}/$file" ) ) );
                    }
                }
            }
        }
        $dir->close();
    }
}

$files = new replaceFiles( "." );

$files->ereg( "/.txt$/" );

$files->replace( "/123/", "456" );

?>



Часовой пояс GMT +4, время: 14:49.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.