Есть несколько сотен статических .html страничек сайта в которых прописан код от адсенса гугла, что-то типа такого: Код (Text): <script type="text/javascript"><!-- google_ad_client = "pub-22222222222222222"; /* 31.01.10 */ google_ad_slot = "456550072"; google_ad_width = 468; google_ad_height = 60; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> Параметры у разных этих кодов отличаются: где-то вертикальные, где-то горизонтальные... Но pub-22222222222222222 одинаковый. Сейчас возникла необходимость их убрать, так как толку нет. Но прописать их оказалось легче, чем удалить Боюсь удалить другие яваскрипты. Подскажите как бы так сделать, чтобы их удалить, а нужные скрипты не задеть? Массив всех адресов .html файлов есть: Код (Text): $fn[0]="mysite/index.html"; $fn[1]="mysite/about.html"; и т.д. А дальше что-то сообразить не могу, как эти файлы лучше анализировать, построчно считывать или полностью в переменную... Подскажите?
ручками ручками выделяешь и удаляешь... =) обычно говорят "Ломать не строить", а тут "строить не ломать"... хы...
они чтоли в кажом файле отдельно прописаны? муть... могу предположить, что если убрать эту строку <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> то никаких банеров не будет. но мусор настроек останется. что, мне кажется, не критично
Да, в каждом прописан. Сайт рассчитан на хостинг без поддержки PHP поэтому баннер прописан в каждом файле. Хотел на локалке пробежаться скриптом по файлам, начистую удалить баннер и перезалить сайт. Руками ой как тяжело! Выручайте.[/quote]
Исключительно по доброте душевной: PHP: <?php // (c) Apple // Расширение HTML-файлов (.html или .htm) $extension = "html"; // Директория с кучей .html файлов $path = dirname(__FILE__) . DIRECTORY_SEPARATOR; // Регулярное выражение (можно уточнить поиск) $regex = '{(\<script (?:.*?)\>(.+?)\</script\>)}ixs'; /** * Перебираем все файлы и заменяем в них */ foreach(glob($path . "*." . $extension) as $filename) { $contents = file_get_contents($filename); if(preg_match_all($regex, $contents, $script)) { for($i = 0; $i < sizeof($script[1]); $i++) { if(strpos($script[2][$i], "google_ad") !== false) { $contents = str_replace($script[1][$i], "", $contents); } } // Запишем изменения на диск // Э-ге-гей, помним о правах на запись file_put_contents($filename, $contents); } } echo "Обработка файлов завершена"; ?>
Apple, спасибо! 5 секунд и готово! Хотел продолжить начатое и во второй заход удалить вторую часть скрипта, там где pagead2.googlesyndication.com/pagead/show_ads.js, но не получилось Думал примерно в этом направлении: PHP: <?php // (c) Apple // Расширение HTML-файлов (.html или .htm) $extension = "html"; // Директория с кучей .html файлов $path = dirname(__FILE__) . DIRECTORY_SEPARATOR; // Регулярное выражение (можно уточнить поиск) //$regex = '{(\<script (?:.*?)\>(.+?)\</script\>)}ixs'; $regex = '{(\<script (?:.*?)\>\</script\>)}ixs'; /** * Перебираем все файлы и заменяем в них */ foreach(glob($path . "*." . $extension) as $filename) { $contents = file_get_contents($filename); if(preg_match_all($regex, $contents, $script)) { for($i = 0; $i < sizeof($script[1]); $i++) { if(strpos($script[2][$i], "googlesyndication") !== false) { $contents = str_replace($script[1][$i], "", $contents); } } // Запишем изменения на диск // Э-ге-гей, помним о правах на запись file_put_contents($filename, $contents); } } echo "Обработка файлов завершена"; ?> Не подскажите последний раз, что я упустил?
Алгоритм перебора нужно немного поменять: PHP: <?php // (c) Apple // Расширение HTML-файлов (.html или .htm) $extension = "html"; // Директория с кучей .html файлов $path = dirname(__FILE__) . DIRECTORY_SEPARATOR; // Регулярное выражение (можно уточнить поиск) $regex = '{(\<script(.+?)\>(?:.*?)\</script\>)}is'; /** * Перебираем все файлы и заменяем в них */ foreach(glob($path . "*." . $extension) as $filename) { $contents = file_get_contents($filename); if(preg_match_all($regex, $contents, $scripts)) { for($i = 0; $i < sizeof($scripts[2]); $i++) { if(strpos($scripts[2][$i], "google") !== false) { $contents = str_replace($scripts[1][$i], "", $contents); } } } // Запишем изменения на диск // Э-ге-гей, помним о правах на запись file_put_contents($filename, $contents); } echo "Обработка файлов завершена"; ?>