Stefan Bechtold: Mit Regular Expression's Formularfelder parsen

Beitrag lesen

Sofern du immer <input ... name="..." ... value="..." ... /> und nicht gemischt mit <input ... value="..." ... name="..." ... /> arbeitest kannst Du diesen hier nehmen:

/<input.*?name="(.*?)".*?value="(.*?)".*?>/i

anderfalls häng den anderen Fall eben noch mit dran:

/<input.*?name="(.*?)".*?value="(.*?)".*?>|<input.*?value="(.*?)".*?name="(.*?)".*?>/i

Das Ganze ist nicht case-sensitive!

Wenn Du das durch einen preg_match_all laufen lässt erhälst Du die Treffer als Array:

preg_match_all($regex, $out, PREG_SET_ORDER);
for($i=0; $i<count($out); $i++) {
  $name = $out[$i][0];
  $value = $out[$i][1];

// Anweisungen...
}

Hoffe es klappt, ist nicht getestet...

Gruss Stefan