Versions 5.x-2, 6.x, and 7.x of Search and Replace Scanner can do plain text search-and-replace, or regular expression search-and-replace, against the title, body and text content fields on all nodes in your system. This is useful for finding html strings that Drupal's normal search will ignore. The module is very handy if you are fixing typos in a lot of content, changing the name of your company, or are changing the URL of a link included multiple times in multiple nodes, among other things.

Drupal 7 version

There is now a development version of scanner for Drupal 7 available. There are a few pieces of functionality still yet to be ported over such as:

  • Search/Replace of summary text (previously teaser).

There are also pieces of functionality that were dropped (if there is enough demand for them, support will be considered) for D7 such as:

  • Ability to enter field names in a text area instead of choosing from the provided list of fields.

Features

  • Can search and replace text in CCK text fields, in addition to standard node title
    and body fields
  • Plain text search and replace orregular expression search and replace
  • Case sensitive search option
  • Plain text search allows 'whole word' matching option. For example,
    searching for "run" with the whole word option selected will filter out
    "running" and "runs", but will match "run!"
  • Can specify text that should precede or follow the search text in order for a match to be valid
  • Can limit search and replace to published nodes only
  • Searches can be limited to specific fields in specific node types, and can further be limited to nodes containing only specific taxonomy terms
  • Will save a new node revision when a replacement is made, in case you want
    to revert a change, and provides an Undo option that lets you revert all nodes that were update in a single replace operation
  • Can dynamically update teasers after replacements in other fields, or can
    by updated manually, or not at all
  • Will dynamically expand PHP's maximum execution time for scripts up to
    10 minutes on servers that support it. This allows complex queries on large
    bodies of content
  • Search results for searches and replacements can be themed

Limitations

  • Only works with MySQL database. (Postgres patches welcomed!)
  • Large search and replace actions may not finish on sites that are hosted in environments where PHP's max_execution_time variable can't be dynamically expanded. The module automatically attempts to expand the maximum execution time of a script to 10 minutes. (It's often set at 2 minutes.) If your Web host doesn't let you adjust this variable dynamically, you may be able to ask your hosting provider to make the change for your account.

Upgrading from 6.x to 7.x

It is highly recommended to disable and uninstall the D6 version and use a fresh install of the scanner module for D7.

Upgrading from 5.x-2 to 6.x

It's best to disable and uninstall version 5.x before copying the new 6.x files into the scanner directory and enabling it. The only thing that's likely to be affected is your "Undo" data, which will be lost upon uninstall of 5.x.

If you really want to keep that data, you could try modifying the scanner table in the db yourself. Change the undo_id field to be of auto incrementing int type. Then copy the 6.x files into the scanner module, enable it, and give it a try. No guarantees though - use at your own risk! :)

Warning

This is a very powerful tool that operates directly on your database tables, and as such is very dangerous. Though there is an undo feature, we highly encourage you to backup your database before using it.

Credits

  • Version 5.x-2.0: Amit Asaravala (aasarava) and Jason Salter (jpsalter). Sponsored by FivePaths, LLC.
  • version 5.x-1.0: Tao Starbow (starbow).
  • Project Information

    Downloads