Thread BBCode URL Teile filtern (8 answers)
Opened by John at 2011-05-05 20:09

topeg
 2011-05-06 08:00
#148288 #148288
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl

use strict;
use warnings;

my $text=<<EOT;
[youtube][/youtube]
[youtube]1234_Abc[/youtube]
[youtube]http://www.youtube.de/?v=1234_Abc[/youtube]
[youtube]http://www.youtube.de/embed/1234_Abc[/youtube]
[youtube]foo bar bam 123[/youtube]
EOT

$text =~ s#\Q[youtube]\E\s*(?:\Qhttp://www.youtube.\E.+?(?:v=(\w+)|embed/(\w+))|(\w+)|.*?)\s*\Q[/youtube]\E#
    my $val=$1 || $2 || $3;
    $_=$val?qq(<iframe width="400" height="300" src="http://www.youtube.com/embed/$val" frameborder="0" allowfullscreen></iframe>):'';
  #isge;

print $text;


Aber ich würde dir Vorschlagen zum Parsen von BBC-Tags ein Modul zu nutzen (siehe cpan). Das macht es nicht nur einfacher wartbar und erweiterbar, sondern kann auch Verschachtelungen Handhaben und Fehler erkennen.

View full thread BBCode URL Teile filtern