preg_replace voor img
Ik wil alle <img src='AFBEELDING' ... /> tags in een bepaalde tekst vervangen door:
<span style='display: block; width: 500px; max-height: 500px; overflow: auto;' class='forum-img-wrapper'><img src='AFBEELDING' style='border:0px' class='forum-img' /></span>
Hoe kan ik dit doen?
Ik kan namelijk niet werken met regex, want ik leer dit pas volgend jaar op school.
Alvast bedankt!
of inderdaad een regex in elkaar prutsen..
string replace ?
Code (php)
1
2
3
2
3
<?PHP
$input = preg_replace('#<img src="([^"]+)"([^>]+)\/>#i','Hier je replace maar dan is $1 je image src en $2 de rest van je img prut.',$input);
?>
$input = preg_replace('#<img src="([^"]+)"([^>]+)\/>#i','Hier je replace maar dan is $1 je image src en $2 de rest van je img prut.',$input);
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$doc = new DOMDocument();
$doc->loadHTMLFile($url);
$images = $doc->getElementsByTagName('img');
foreach($images as $img){
$span = $doc->createElement('span');
$doc->appendChild($span);
$span->setAttribute('style','padding:5px;border:10px solid red;');
$img->parentNode->insertBefore($span,$img);
$span->textContent = 'Span';
$span->appendChild($img);
}
echo $doc->saveHTML();
?>
$doc = new DOMDocument();
$doc->loadHTMLFile($url);
$images = $doc->getElementsByTagName('img');
foreach($images as $img){
$span = $doc->createElement('span');
$doc->appendChild($span);
$span->setAttribute('style','padding:5px;border:10px solid red;');
$img->parentNode->insertBefore($span,$img);
$span->textContent = 'Span';
$span->appendChild($img);
}
echo $doc->saveHTML();
?>
Zo kan het ook nog :P.. misschien niet de beste manier qua performance...*-)
Zal ze even uittesten :)
Han schreef op 14.10.2008 19:14:
Code (php)
1
2
3
2
3
<?PHP
$input = preg_replace('#<img src="([^"]+)"([^>]+)\/>#i','Hier je replace maar dan is $1 je image src en $2 de rest van je img prut.',$input);
?>
$input = preg_replace('#<img src="([^"]+)"([^>]+)\/>#i','Hier je replace maar dan is $1 je image src en $2 de rest van je img prut.',$input);
?>
Deze lijkt het beste te werken, maar er zouden nog een paar aanpassingen moeten gebeuren. Sommige img tags van mij eindigen zo:
... src=''>
... src=''/>
... src='' />
Ik dacht dat #<img src="([^"]+)"([^>]+)(\/|\t\/)>#i zou werken, maar blijkbaar niet. Iemand een oplossing?
Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door Stijn