preg_replace: Ersetzen innerhalb eines Tags

tomate

Erfahrenes Mitglied
Hallo,

ich habe folgendes Tag:

HTML:
<input type='button' class='minus' field='prod_amount[15][1][0]' />

Wie bekomme ich die [ und die ] innerhalb des Tags <input /> durch _ ersetzt?
Kennt jemand eine gute Seite zum Thema?

Viele Grüße und Danke, Tomate
 
Zuletzt bearbeitet:
Den input solltest du mit DomDocument leicht finden, das ersetzen geht auch ohne preg_*:

PHP:
var_dump(str_replace(array('[', ']'), array('_', ''), 'prod_amount[15][1][0]'));
 
Das mit DomDocument bekomme ich nicht hin. Trotz Docu.
Kannst Du mir einen Ansatz geben?

Ich habe mal testhalber das hier gemacht:


PHP:
$zeichenkette = "<input type='button' value='-' class='qtyminus' field='shop_prod_amount[15]_1_0' />";
$dom->loadHTML($zeichenkette);
$food = $dom->getElementsByTagName('input');

foreach($dom->getElementsByTagName('input') as $uff) {
		echo $uff;
}

Das erzeugt aber den Fehler: Catchable fatal error: Object of class DOMElement could not be converted to string in P:\xampp\htdocs\xxx\test.php

Grüße, Tomate
 
Zuletzt bearbeitet:
PHP:
$dom = new domdocument;
$zeichenkette = "<input type='button' value='-' class='qtyminus' field='shop_prod_amount[15][1][0]' />";
$dom->loadHTML($zeichenkette);

foreach($dom->getElementsByTagName('input') as $input) {
        $new = str_replace(array('[', ']'), array('_', ''), $input->getAttribute('field'));
        $input->setAttribute('field', $new);
}

echo $dom->saveHTML();

probiers damit.... doctype musste noch löschen wenn du das nicht willst ;)
 
Zurück