woompy has asked for the wisdom of the Perl Monks concerning the following question:
I’m having a few problems with this, the first is that my error checking doesn't work. I’ve left the SRC out of the Bolt code to show you what its doing, or not doing. Second thing is I need to clean up and combine some of the back referencing if possible. I’m also having a problem with the Google code but I need to get what I have working before I can work on that. Can someone please help. Thanks Bob#!/usr/bin/perl use CGI qw(:standard); use STRICT; print header(); # src='http://www.bolt.com/video/flv_player_branded.swf?contentId=1952 +754&contentType=2' # src from bolt code my $text = qq([video](title)- BOLT CODE - (/title)<embed loop='false' + quality='high' bgcolor='white' width='365' height='340' name='video_ +play_500' allowScriptAccess='sameDomain' type='application/x-shockwav +e-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /> +<br/><a href='http://www.bolt.com/'>Get video codes</a> at <a style=' +font-family:arial,sans-serif;font-size:12px;color:#0066CC' href='http +://www.bolt.com'>Bolt</a>[/video] [video](title)- YOUTUBE CODE - (/title)<object width="425" height="350 +"><param name="movie" value="http://www.youtube.com/v/topeBoB-ApQ"></ +param><param name="wmode" value="transparent"></param><embed src="htt +p://www.youtube.com/v/topeBoB-ApQ" type="application/x-shockwave-flas +h" wmode="transparent" height="350" width="425"></embed></object>[/v +ideo] [video](title)- YAHOO CODE - (/title)<embed src='http://us.i1.yimg.com +/cosmos.bcst.yahoo.com/player/media/swf/FLVVideoSolo.swf' flashvars=' +id=970784&emailUrl=http%3A%2F%2Fvideo.yahoo.com%2Futil%2Fmail%3Fei%3D +UTF-8%26vid%3De2e02ad6d9d1646cfa12ec8f270ae1ad.970784%26cache%3D1&imU +rl=http%25253A%25252F%25252Fvideo.yahoo.com%25252Fvideo%25252Fplay%25 +253F%252526ei%25253DUTF-8%252526vid%25253De2e02ad6d9d1646cfa12ec8f270 +ae1ad.970784%252526cache%25253D1&imTitle=Nobody%252527s%252BWatching% +252BOK%252BGo&searchUrl=http://video.yahoo.com/video/search?p=&profil +eUrl=http://video.yahoo.com/video/profile?yid=&creatorValue=bm9ib2R5c +3dhdGNoaW5ndHY%3D&vid=e2e02ad6d9d1646cfa12ec8f270ae1ad.970784' type=' +application/x-shockwave-flash' width='425' height='350'></embed>[/vid +eo]); while ($text =~ s{\[video\](.+?)\[\/video\]} { ($src,$fvars,$type,$width,$height) = (); $vdata = $1; $vdata =~ m!\(title\)(.+?)\(\/title\)!is; $title = $1; $vdata =~ s!("|'|#)!!isg; $vdata =~ m!\<embed (.+?)(\>|\/\>)!is; $video_data = $1; $video_data =~ s!("|'|#)!!isg; #clean it up if ($video_data =~ m|type=application\/x\-shockwave\-flash|i) { $type = "ok"; $video_data =~ s|type=application\/x\-shockwave\-flash||ig; # remove t +he Type } $video_data =~ m!width\s*=\s*([^ ]+)!i; $width = "$1"; $video_data =~ m|height\s*=\s*([^ ]+)|i; $height = "$1"; $video_data =~ m|src\s*=\s*([^ ]+)|ig; $src = "$1"; print "this is width of $title - $width\n"; print "this is height of $title - $height\n"; print "this is src of $title - $src\n"; if ($type&&$src&&$width&&$height) { $video_data =~ s/^\s+//; #remove leading spaces $video_data =~ s/\s+$//; #remove trailing spaces $video_data =~ s/\s+/ /g; #remove excess white spaces if ($video_data =~ m|flashvars\s*=\s*([^ ]+)|ig) { #match and save $fvars = "$1"; $video_data =~ s|flashvars\s*=\s*([^ ]+)||ig; #delete flashvars from +string } @values = split(' ',$video_data); $querystring = join('&', @values); if ($fvars) { $querystring .= "&" . $fvars; } qq|<!--videocode-->QUERTSTRING,TITLE,WIDTH and HEIGHT - ($title) $quer +ystring($title)(width - $width)(height - $height)(type - $type)(src - + $src)<--videocode-->|; } else { qq|<!--videocode-->PROBLEM WITH VIDEO CODE TITLED - $title<--videocode +-->|; } }eisg) {} print "This is the text output - $text";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Help with shockwave-flash parser
by liverpole (Monsignor) on Nov 06, 2006 at 01:44 UTC | |
by woompy (Initiate) on Nov 06, 2006 at 03:40 UTC | |
|
Re: Help with shockwave-flash parser
by talexb (Chancellor) on Nov 06, 2006 at 01:37 UTC |