Html tag uit string halen en tonen
Nou moet ik een regex hebben om de eerste <img src="%"> eruit te halen.
Het moet ook werken als er <IMG SRC='%'> staat.
Ik heb het volgende stukje script al, maar het werkt niet perfect. Hoe kan ik ervoor zorgen dat het wel werkt?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$artikel = stripslashes($row['inhoud']);
$woordenartikelarray = explode(" ",$artikel);
$aantalwoorden = count($woordenartikelarray);
echo $aantalwoorden;
$vardone = '';
$counter2 = 1;
$img = '';
while($aantalwoorden > $counter2 AND $vardone != 'done')
{
if($woordenartikelarray[$counter2] == "<img" OR $woordenartikelarray[$counter2] == "<IMG")
{
$src = $counter2 + 1;
$src = $woordenartikelarray[$src];
$src = str_replace('(.*?)\>$','\1\>',$src);
$img = '<div style="overflow: hidden; float: right; width: 150px; height: 100px;"><img '.$src.'></div>';
$vardone = 'done';
}
$counter2 = $counter2 + 1;
}
Code (php)
(niet getest)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$text = 'adfgadfgadff sajfhsadjfh sda
f adjfffh gasdjf asdjf ghdafjf s
daf hasdf hgasdjkf gsadf
sad f jka<IMG alt="test" src="kebab.jpg" />sdg fsdhf asd jg ads
agfdjhg adsjfk hsd
gjdfhg jadfgh adfsgjl hadfg
sdfgadskjgh adfg adfg
asdjkhadf <IMG src="kipsate.jpg"> asdgdafgdf
sdfg
sdfgsdfgsdf
gsdfgsdfgsdfgsdfghsdfhrtgdarg d eg rtfg adfg tsh g
dsfg sdfg serg sdrg srtgsdf sgfd
asldgjhdflg <img src="iksdee.jpg"> sdf af awef awef cdsafsdfgasd
asdgregaergadfvadg';
preg_match_all('/<img (.*)src="(.+)"(.*)>/i', $text, $imgs);
$first = $imgs[2]; // Nummer 2, want we willen de waarde van de tweede (.*) hebben
$first = $first[0]; // En daarvan dan weer de 0, want dat is de eerste match
echo '<img src="'.$first.'" />'; // $first zal de src van het eerste voorkomen van <img> bevatten
?>
$text = 'adfgadfgadff sajfhsadjfh sda
f adjfffh gasdjf asdjf ghdafjf s
daf hasdf hgasdjkf gsadf
sad f jka<IMG alt="test" src="kebab.jpg" />sdg fsdhf asd jg ads
agfdjhg adsjfk hsd
gjdfhg jadfgh adfsgjl hadfg
sdfgadskjgh adfg adfg
asdjkhadf <IMG src="kipsate.jpg"> asdgdafgdf
sdfg
sdfgsdfgsdf
gsdfgsdfgsdfgsdfghsdfhrtgdarg d eg rtfg adfg tsh g
dsfg sdfg serg sdrg srtgsdf sgfd
asldgjhdflg <img src="iksdee.jpg"> sdf af awef awef cdsafsdfgasd
asdgregaergadfvadg';
preg_match_all('/<img (.*)src="(.+)"(.*)>/i', $text, $imgs);
$first = $imgs[2]; // Nummer 2, want we willen de waarde van de tweede (.*) hebben
$first = $first[0]; // En daarvan dan weer de 0, want dat is de eerste match
echo '<img src="'.$first.'" />'; // $first zal de src van het eerste voorkomen van <img> bevatten
?>
Gewijzigd op 01/01/1970 01:00:00 door - -
Ja herjan, ik probeerde eerst jouw manier en het werkte niet, toen jonathans manier gebruikt en dat werkte na een klein foutje gefixed te hebben. In ieder geval bedankt beiden.
Marthijn Hoiting schreef op 25.06.2007 23:04:
Ja herjan, ik probeerde eerst jouw manier en het werkte niet, toen jonathans manier gebruikt en dat werkte na een klein foutje gefixed te hebben. In ieder geval bedankt beiden.
Wat moest je nog aanpassen dan? Misschien zijn er meer die er wat aan kunnen hebben ;)
Je kunt de code toch weergeven op je scherm door de < en > en " te veranderen in htmlentities