Замените код в наборе файлов внутри папки на PHP

#php #html #xcode #replace #directory

#php #HTML #xcode #заменить #каталог

Вопрос:

У меня есть файлы (index.html ) в папке эти файлы содержат следующий код

index.html

 <!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
  <script type="text/javascript" src="/wp-content/themes/twentyfourteen/open.js"></script>
 </body>
</html>
  

Я хочу, чтобы скрипт php искал этот код

 <script type="text/javascript" src="/wp-content/themes/twentyfourteen/open.js"></script>
  

во всех файлах внутри папки укажите пути и замените его этим кодом

     <script type="text/javascript"
 src="/wp-content/open.js">
</script>
  

дополнительная информация

имя папки:(myhome)

пути к папкам: /myhome/

/myhome/видео/

/myhome/photo/

/myhome/модели/

/myhome/contact/

и многое другое…

пути к файлам: /myhome/index.html

/myhome/video/index.html

/myhome/photo/index.html

/myhome/models/index.html

/myhome/contact/index.html

и многое другое…

пожалуйста, помогите мне

Комментарии:

1. file_get_contents -> str_replace -> file_put_contents ?

2. я не понимаю. можете ли вы создать php?

Ответ №1:

это решение http://pastebin.com/wuWupgBg

и измените

 if( is_file( $path ) amp;amp; substr($path, -3)=='php' amp;amp; substr($path, -17) != 'ChangePHPText.php'){
  

Для

 if( is_file( $path ) amp;amp; substr($path, -4)=='html' amp;amp; substr($path, -17) != 'ChangePHPText.php'){
  

Ответ №2:

ммм, откройте все эти файлы в вашей IDE, затем выполните поиск и замените o/

или :

 $dir = '/myhome/';

echo 'Looking in '.$dir.' ...<br />';

$scan = scandir($dir);

foreach( $scan as $item ){

    if( is_dir($dir.$item) ){

        echo 'Looking in '.$dir.$item.' ...<br />';

        $scan_bis = scandir($dir.$item);

        if( array_key_exists('index.html', $scan_bis) ){

            $the_file = $dir.$item.'/index.html'; // im not sure if you need the trailing slash or not before index.html

            echo 'Modifying '.$the_file.' ... ';

            $file = file_get_contents($the_file);

            $file = str_replace('/wp-content/themes/twentyfourteen/open.js', '/wp-content/open.js', $file);

            $is_writed = file_put_contents($the_file, $file);

            if( $is_writed === FALSE ){

                echo '( FAILED )<br />';
            }
        }
    }
}
  

Вам просто нужно будет изменить /myhome/index.html вручную 🙂

Комментарии:

1. спасибо за помощь. нет работы. У меня более 200 файлов (index.html ) внутри путей к папкам(myhome)

2. о, вы имеете в виду, что этот код не работает? .. ммм, хорошо, тогда я отредактирую его, если вы подтвердите это. PS: если скрипт находится в "/myhome/" изменении $dir = "/myhome/"; на $dir = "./"; . Я думаю, что отредактирую это и дам вам скрипт немного посложнее, но он в любом случае выполнит свою работу, опубликую его завтра: p

3. еще раз спасибо, скрипт находится в «/myhome/», и я меняю $dir = «/myhome/»; на $dir = «./»; я открываю mywebsite.com/myhome/replease.php вывод браузера: Looking in ./ … Заглядывая в ./. … Просматривая ./ .. … после этого я просматриваю index.html , ничего не изменилось. replease.php содержит: <?php $dir = ‘./’; Остальная часть вашего кода выше … ?>

4. я основываю это приложение (Text Crawlar). При задании моего вопроса это работает так же, но в системе Windows. Я хочу, чтобы та же идея работала на PHP на моем веб-сайте. Сайт этого приложения: digitalvolcano.co.uk/textcrawler.html

5. каков именно результат моего кода? у меня нет времени на разработку полноценного приложения только для ou man, поэтому