поиск PHP скрипта

Discussion in 'Болталка' started by BLurpi^_^, 18 Nov 2011.

  1. BLurpi^_^

    BLurpi^_^ Banned

    Joined:
    9 Feb 2011
    Messages:
    218
    Likes Received:
    26
    Reputations:
    9
    Нужен PHP скрипт который заминит строку х на строку у во всех файлах в той папке, где он находится
    Кто поможет?
    Тот что из гугла-неработает
     
  2. Kuteke

    Kuteke Banned

    Joined:
    26 Jun 2010
    Messages:
    179
    Likes Received:
    26
    Reputations:
    6
    Залей на сайт WSO и через Console на Perl-е все сделаешь.
     
  3. BLurpi^_^

    BLurpi^_^ Banned

    Joined:
    9 Feb 2011
    Messages:
    218
    Likes Received:
    26
    Reputations:
    9
    а как, не мог бы подсказать?
     
  4. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    <?php

    ######Файлы в папке files с разширением .txt######

    $s = ""; //текст который заменять
    $n = ""; //текст на который заменять

    $files = glob("files/*.txt");

    foreach($files as $fl){
    $res = file_get_contents("files/$fl");
    $content = str_replace($s, $n, $res);
    file_put_contents("files/$fl", $content);
    }

    echo "ok";

    ?>
     
  5. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Так?
    PHP:
    <?php 
    $path 
    getcwd();
    if (
    $dh opendir($path))
    {
        
    $path_parts pathinfo($_SERVER["PHP_SELF"]);
        while ((
    $file readdir($dh)) !== false)     
        {     
            if (
    $file !== '.' AND $file !== '..' AND $file !== $path_parts['basename']) 
            {     
                
    $current_file "{$path}//{$file}";
                if (
    is_file($current_file))     
                {     
                    
    $f array_map("trim"file($current_file));
                    
    $strX 1// номер строки x
                    
    $strY 3// номер строки y
                    
    $count count($f);
                    
    $fp fopen($current_file,"wb");
                    for(
    $i=0$i<$count$i++)
                    {
                        if(
    $i!=$strX-1)
                        {
                            
    fwrite($fp$f[$i]."\r\n");
                        }
                        else
                        {
                            
    fwrite($fp,  $f[$strY-1]."\r\n");
                        }
                    }
                    
    fclose($fp);
                }  
            }     
        }     
    }
    ?>
    Или строка (y) должна определяться вручную? Если да, то необходимо заменить $strY = 5; на $strY = "здесь моя строка"; и fwrite($fp, $f[$strY-1]); на fwrite($fp, $strY);
    Глаза уже слипаются, поэтому наверно не понял вопрос :(
     
    #5 Skofield, 19 Nov 2011
    Last edited: 19 Nov 2011
  6. BLurpi^_^

    BLurpi^_^ Banned

    Joined:
    9 Feb 2011
    Messages:
    218
    Likes Received:
    26
    Reputations:
    9
    не работает ничего...;(
    daniel777
    если в твоем скрипте .txt заменить на .html,будет робить?
     
  7. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Что значит не работает ничего? Вообще ничего не происходит?
    Внес коррективы в скрипт.
     
  8. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Да, будет конечно.
     
  9. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    daniel777, твой скрипт не сработает, так как в этом выражение file_get_contents("files/$fl"); в переменную $fl подставится значение files/имя_какого-то_файла.txt что приведет к предупреждению: failed to open stream: No such file or directory, так как функция file_get_contents будет ссылаться на неправильный путь files/files/имя_какого-то_файла.txt

    Чтобы данный скрипт сработал в директории, в которой он находиться надо сделать так:
    PHP:
    <?php

    $s 
    ""//текст который заменять
    $n ""//текст на который заменять

    $files glob("*.txt");

    foreach(
    $files as $fl){
    $res file_get_contents("$fl");
    $content str_replace($s$n$res);
    file_put_contents("$fl"$content);
    }

    echo 
    "ok";

    ?>
    а чтобы он сработал в папке files нужно сделать так:
    PHP:
    <?php

    ######Файлы в папке files с разширением .txt######

    $s ""//текст который заменять
    $n ""//текст на который заменять

    $files glob("files/*.txt");

    foreach(
    $files as $fl){
    $res file_get_contents("$fl");
    $content str_replace($s$n$res);
    file_put_contents("$fl"$content);
    }

    echo 
    "ok";

    ?>