За последние 24 часа нас посетили 53302 программиста и 1714 роботов. Сейчас ищут 944 программиста ...

Как распознать и удалить баннер гугла?

Тема в разделе "PHP для новичков", создана пользователем Namer, 24 апр 2010.

  1. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Есть несколько сотен статических .html страничек сайта в которых прописан код от адсенса гугла, что-то типа такого:
    Код (Text):
    1.  
    2. <script type="text/javascript"><!--
    3. google_ad_client = "pub-22222222222222222";
    4. /* 31.01.10 */
    5. google_ad_slot = "456550072";
    6. google_ad_width = 468;
    7. google_ad_height = 60;
    8. //-->
    9. </script>
    10. <script type="text/javascript"
    11. src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    12. </script>
    Параметры у разных этих кодов отличаются: где-то вертикальные, где-то горизонтальные... Но pub-22222222222222222 одинаковый.
    Сейчас возникла необходимость их убрать, так как толку нет. Но прописать их оказалось легче, чем удалить :( Боюсь удалить другие яваскрипты. Подскажите как бы так сделать, чтобы их удалить, а нужные скрипты не задеть?
    Массив всех адресов .html файлов есть:
    Код (Text):
    1.  
    2. $fn[0]="mysite/index.html";
    3. $fn[1]="mysite/about.html";
    4. и т.д.
    А дальше что-то сообразить не могу, как эти файлы лучше анализировать, построчно считывать или полностью в переменную... Подскажите?
     
  2. vuzy

    vuzy Активный пользователь

    С нами с:
    11 мар 2010
    Сообщения:
    199
    Симпатии:
    0
    Адрес:
    киев
    ручками ручками выделяешь и удаляешь... =) обычно говорят "Ломать не строить", а тут "строить не ломать"... хы...
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    они чтоли в кажом файле отдельно прописаны? муть...

    могу предположить, что если убрать эту строку
    <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    то никаких банеров не будет. но мусор настроек останется. что, мне кажется, не критично
     
  4. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Да, в каждом прописан. Сайт рассчитан на хостинг без поддержки PHP поэтому баннер прописан в каждом файле. Хотел на локалке пробежаться скриптом по файлам, начистую удалить баннер и перезалить сайт. Руками ой как тяжело! :) Выручайте.[/quote]
     
  5. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Исключительно по доброте душевной:

    PHP:
    1. <?php
    2.  
    3. // (c) Apple
    4.  
    5. // Расширение HTML-файлов (.html или .htm)
    6. $extension  = "html";
    7.  
    8. // Директория с кучей .html файлов
    9. $path = dirname(__FILE__) . DIRECTORY_SEPARATOR;
    10.  
    11. // Регулярное выражение (можно уточнить поиск)
    12. $regex = '{(\<script (?:.*?)\>(.+?)\</script\>)}ixs';
    13.  
    14.  
    15. /**
    16.  * Перебираем все файлы и заменяем в них
    17.  */
    18. foreach(glob($path . "*." . $extension) as $filename) {
    19.     $contents = file_get_contents($filename);
    20.  
    21.     if(preg_match_all($regex, $contents, $script)) {
    22.         for($i = 0; $i < sizeof($script[1]); $i++) {
    23.             if(strpos($script[2][$i], "google_ad") !== false) {
    24.                 $contents = str_replace($script[1][$i], "", $contents);
    25.             }
    26.         }
    27.  
    28.         // Запишем изменения на диск
    29.         // Э-ге-гей, помним о правах на запись
    30.         file_put_contents($filename, $contents);
    31.     }
    32. }
    33.  
    34. echo "Обработка файлов завершена";
    35.  
    36. ?>
     
  6. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Apple, спасибо! 5 секунд и готово! :)

    Хотел продолжить начатое и во второй заход удалить вторую часть скрипта, там где pagead2.googlesyndication.com/pagead/show_ads.js, но не получилось :) Думал примерно в этом направлении:
    PHP:
    1.  
    2. <?php
    3.  
    4.  // (c) Apple
    5.  
    6.  // Расширение HTML-файлов (.html или .htm)
    7.  $extension  = "html";
    8.  
    9.  // Директория с кучей .html файлов
    10.  $path = dirname(__FILE__) . DIRECTORY_SEPARATOR;
    11.  
    12.  // Регулярное выражение (можно уточнить поиск)
    13.  //$regex = '{(\<script (?:.*?)\>(.+?)\</script\>)}ixs';
    14.  $regex = '{(\<script (?:.*?)\>\</script\>)}ixs';
    15.  
    16.  /**
    17.   * Перебираем все файлы и заменяем в них
    18.   */
    19.  foreach(glob($path . "*." . $extension) as $filename) {
    20.      $contents = file_get_contents($filename);
    21.  
    22.      if(preg_match_all($regex, $contents, $script)) {
    23.      for($i = 0; $i < sizeof($script[1]); $i++) {
    24.              if(strpos($script[2][$i], "googlesyndication") !== false) {
    25.                  $contents = str_replace($script[1][$i], "", $contents);
    26.              }
    27.          }
    28.  
    29.          // Запишем изменения на диск
    30.          // Э-ге-гей, помним о правах на запись
    31.          file_put_contents($filename, $contents);
    32.      }
    33.  }
    34.  
    35.  echo "Обработка файлов завершена";
    36.  
    37.  ?>
    38.  
    39.  
    Не подскажите последний раз, что я упустил?
     
  7. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Алгоритм перебора нужно немного поменять:

    PHP:
    1. <?php
    2.  
    3. // (c) Apple
    4.  
    5. // Расширение HTML-файлов (.html или .htm)
    6. $extension  = "html";
    7.  
    8. // Директория с кучей .html файлов
    9. $path = dirname(__FILE__) . DIRECTORY_SEPARATOR;
    10.  
    11. // Регулярное выражение (можно уточнить поиск)
    12. $regex = '{(\<script(.+?)\>(?:.*?)\</script\>)}is';
    13.  
    14.  
    15. /**
    16.  * Перебираем все файлы и заменяем в них
    17.  */
    18. foreach(glob($path . "*." . $extension) as $filename) {
    19.     $contents = file_get_contents($filename);
    20.  
    21.     if(preg_match_all($regex, $contents, $scripts)) {
    22.         for($i = 0; $i < sizeof($scripts[2]); $i++) {
    23.             if(strpos($scripts[2][$i], "google") !== false) {
    24.                 $contents = str_replace($scripts[1][$i], "", $contents);
    25.             }
    26.         }
    27.     }
    28.  
    29.     // Запишем изменения на диск
    30.     // Э-ге-гей, помним о правах на запись
    31.     file_put_contents($filename, $contents);
    32. }
    33.  
    34. echo "Обработка файлов завершена";
    35.  
    36. ?>
     
  8. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Apple, спасибо! Нормалек!