Mijn bedoeling is van op een pagina enkel alle afbeeldigen weer te geven, met alt tags.

Dit heb ik al en werkt perfect:

preg_match_all("/<\s*img\s+[^>]*src\s*=\s*[\"']?([^\"' >]+)[\"' >]/isU", $FileSourceBody, $Url);

$UrlCount = count($Url[1]);
$alttag = 'dit moet nog komen';

for($i = 0; $i < $UrlCount; $i++){

	echo '<img src="'.$Url[1][$i].'" alt="'.$alttag.'"  /><br />';
	
}


Dit geeft dan alle afbeeldingen onder elkaar, nu had ik graag daarbij alle alt-tags. Maar als er geen alt-tags zijn moet de afbeelding ook weergegeven worden, dan zonder alt-tag.

ik hoop dat jullie er iets op kunnen vinden, ik geraak er niet wijs uit :'(
Hoewel dit in een regex is op te lossen, raad ik je aan dit in drie simpelere regexes op te lossen. Hoewel het ook wel in een grote regex te doen is, zou ik even niet weten hoe je dat zou moeten aanpakken.

Namelijk:
1: Match alles <img tags>
2: Haal de img tag eruit
3: Haal de alt tag eruit

Dus:

preg_match_all("/<\s*?(img[^>]*?)>/is", $FileSourceBody, $Url);
foreach ($Url[0] as $match) {
preg_match("/alt\s+?=[\"']?([^\"' ]+?)[\"' ]/is", $match, $alt);
preg_match("/img\s+?=[\"']?([^\"' ]+?)[\"' ]/is", $match, $src);
}
bedankt, dat lijkt me ook simpelder.
maar 1 klein probleempje, ik krijg deze niet werkend hoe jij hebt gegeven.
de preg_match_all("/<\s*?(img[^>]*?)>/is", $FileSourceBody, $Url); geeft geen resultaten weerk, ook al zijn er meerdere, wat ik maar raar vindt.

Kan het zijn dat er iets aan fout is? of doe ik iets verkeerd?

preg_match_all("/<\s*?(img[^>]*?)>/is", $FileSourceBody, $Url);
foreach ($Url[0] as $match) {
preg_match("/alt\s+?=[\"']?([^\"' ]+?)[\"' ]/is", $match, $alt);
preg_match("/src\s+?=[\"']?([^\"' ]+?)[\"' ]/is", $match, $src);

echo $src[0];
}

Reageren