Вы можете использовать регулярные выражения для соответствия вашим пользовательским тегам.
$html // Your html
preg_match_all('/<module\s*([^>]*)\s*\/?>/', $html, $customTags, PREG_SET_ORDER);
foreach ($customTags as $customTag) {
$originalTag=$customTag[0];
$rawAttributes=$customTag[1];
preg_match_all('/([^=\s]+)="([^"]+)"/', $rawAttributes, $attributes, PREG_SET_ORDER);
$formatedAttributes=array();
foreach ($attributes as $attribute) {
$name=$attribute[1];
$value=$attribute[2];
$formatedAttributes[$name]=$value;
}
$html=str_replace($originalTag, yourFunction($formatedAttributes), $html);
}
Если вы хотите использовать XML-подход, свяжитесь со мной, и я покажу вам, как это сделать.