Mit preg-replace (regex) xhtml validieren (html tags schließen)

Hey klasse. Das klappt soweit.jetzt müsste es möglich sein die 4 tags in einer abfrage reinzupacken. geht das?
ich glaube das war irgendwie so:

Vorsicht! Der Code funktioniert so nicht!
PHP:
$html = preg_replace('|<(input;br;hr;img)(.*[^/])>|sU','<(input;br;hr;img)$1 />',$html);

Weist du was ich meine?
 
Ich bastel schon die ganze Zeit, ich schaff es nicht das mit einen regulären Ausdruck zu beschreiben. Aber ich gebe nicht auf ^^
 
Also ich hab jetzt einiges probiert, aber ich bekomm es nicht mit einen regulären Ausdruck hin. Mit 2 schon.
Mit einen die hr- und br-Tags und mit einem anderen, die img und input-Tags.
Bitte schau sich das ma jemand an, der wirklich Ahnung davon hatt:-)

achso hier der Scriptcode für img- und input-Tags:

PHP:
preg_replace('?<(img|input)(.*[^/])>?sU','<$1$2 />',$html);
 
Zuletzt bearbeitet:
Ich danke dir vielmals für deine Hilfe und freue mich, dass du so engagiert dabei bist. Ich brauche die Hilfe echt - und regex ist das letzte wovon ich nen blassen habe :)

Also nach wie vor, danke!
 
Um den HTML-Code zu validieren könntest du auch folgendes machen:
PHP:
<?php
function validate($xml) {
    
    @$xml = simplexml_load_string($xml, null, LIBXML_DTDVALID);

    $err = libxml_get_last_error();
	        
    if(empty($err)) {
	        
	    echo 'Valid XML document.';
	        
    }
    else {

        libxml_clear_errors();   
            
		echo 'Invalid XML document.';	  
    }
        
}
?>
Ich habe das jetzt aber nicht getestet.

greetz
daddz
 
@ Online-Skater: Es müsste eigentlich funktionieren, aber tut es nicht. Du kannst es ja mal testen, br- und hr-Tags werden nicht geschlossen.

Ich würd da gern mal ne Lösung mit RegEx sehn, das lässt mich jetzt nicht mehr in Ruhe.
 
@daddz: klasse. das habe ich auch noch gesucht! hier wird noch mitgedacht :-)
ich danke dir dafür!
@soyo: also bei mir geht der Code leider auch nicht. Da muss doch irgendwo ein kniff sein

:suchen:
 
Bei mir macht er aus

PHP:
$html = '<a href="tutorials.de">Link</a><br><br>
<img src="abc.gif"><p>Ein Absatz</p><hr><br><input type="text">';

gleich


HTML:
<a href="tutorials.de">Link</a><br><br />
<img src="abc.gif" /><p>Ein Absatz</p><hr><br /><input type="text" />

Dann hab ich nochmal getestet:

PHP:
$html = '<br><br><br><br>';

... daraus macht er

HTML:
<br><br /><br><br />

Warum checkt er nur jeden 2. Tag? Bei mehreren img-Tags wird das auch korrekt erkannt und ersetzt ... komisch
 
Zurück