Guest

sbutler

By: a guest on Jan 21st, 2009  |  syntax: Perl  |  size: 0.96 KB  |  hits: 135  |  expires: Never
download  |  raw  |  embed  |  report abuse
Copied
  1. #!/usr/bin/perl -w
  2.  
  3. use strict;
  4.  
  5. use DBI;
  6. use HTML::Parser;
  7.  
  8. my $dbh = DBI->connect( 'DBI:mysql:database=mydb;host=myhost.example.org', 'myuser', 'mypass', { RaiseError => 1 } )
  9.         || die "Cannot connect to database: $!";
  10.  
  11. my $sth_update = $dbh->prepare( 'UPDATE `mytable` SET `body` = ? WHERE `id` = ?' );
  12. my $sth_select = $dbh->prepare( 'SELECT `id`, `body` FROM `mytable`' );
  13.  
  14. my ($id, $body);
  15.  
  16. $sth_select->execute;
  17. $sth_select->bind_columns( \$id, \$body );
  18. while ($sth_select->fetch) {
  19.         my $tree = HTML::TreeBuilder->new;
  20.  
  21.         $tree->parse( $body );
  22.         $tree->eof;
  23.         $tree = $tree->elementify;
  24.  
  25.         # skip if this already has a src PARAM
  26.         next if $tree->look_down( '_tag' => 'param', 'name' => 'src' );
  27.  
  28.         my $embed = $tree->look_down( '_tag' => 'embed' );
  29.         next unless $embed;
  30.  
  31.         my $param = HTML::Element->new( 'param', 'name' => 'src', 'value' => $embed->attr( 'src' ) );
  32.         $tree->unshift_content( $param );
  33.  
  34.         $sth_update->execute( $tree->as_HTML );
  35. }