Hallo Zusammen,
ich scheiter an einem Regex und würde mich sehr über Hilfe freuen, da ein Freund hier was braucht und ich am Regex verzweifele.
Ich möchte eine html-Tag section, die ich zerlegen muss, da ich die Einzelteile in einem Shortcode verwende.
Ausgangspunkt kann wie folgt sein:
|
Source code
|
1
|
<video src="http://20101121-131236.mov" controls="controls" width="480" height="360" img-url="http://imagelink">Your browser does not support the video tag</video>
|
Ziel ist bspw. so was:
|
Source code
|
1
|
[video filmurl='http://20101121-131236.mov' posterurl='http://imagelink']
|
oder
|
Source code
|
1
|
[video filmurl='http://20101121-131236.mov']
|
Der Tag kann mit src und img-url sein, es kann aber auch jeder einzeln sein. Mich interessieren immer src und/oder img-url.
Aktuell habe ich folgende Lösung, die aber nur greift, wenn beide Attribute im Tag sind.
|
PHP Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
$data['post_content'] = stripslashes( $data['post_content'] );
$data['post_content'] = preg_replace(
"~<video\s+ # <video plus Leerraum
src=([\"|\'])([^\\1]*)\\1 # Attribut src
\s+.*\s+ # Zeug dazwischen
img-url=([\"|\'])([^\\3]*)\\3.*> # Attribut img-url
.*</video> # Rest
~msiUx"
// Modifier:
// m = Multiline
// s = '.' erfaßt auch Umbrüche
// i = Groß- Kleinschreibung egal, also auch <ViDeO
// U = ungreedy, fang nur das Nötigste
// x = Ignoriere Leeraum im Muster, für die erklärenden Kommentare
,
"[video filmurl='\\2' posterurl='\\4']",
$data['post_content']
);
$data['post_content'] = addslashes( $data['post_content'] );
|
Vielen Dank schon jetzt für die Mühe.