我想要从给定HTML中的表单和输入字段中提取和回显属性值。我发现它可能与DOMDocument。从HTML中提取表单和输入字段
一个特定的输入需要由<div style="position: absolute; left: -5000px;"></div>
我以为我可以搜索如果输入的父元素具有这种风格的属性,或者输入字段的名称是类同b_7e0d9965bedeea1cc5f7217a9_4685998a30
进行分组。但我不知道该怎么做。
这是代码:
$html = $theme['html']; // From a text input field
$dom = new DOMDocument();
if (@$dom->loadHTML($html)) {
$forms = $dom->getelementsbytagname('form');
foreach ($forms as $form) {
$form_action = $form->getAttribute('action');
$form_method = $form->getAttribute('method');
$form_id = $form->getAttribute('id');
$form_name = $form->getAttribute('name');
$form_class = $form->getAttribute('class');
$form_target = $form->getAttribute('target');
echo '<form';
if (!empty($form_action)) { echo ' action="'. $form_action .'"'; }
if (!empty($form_method)) { echo ' method="'. $form_method .'"'; }
if (!empty($form_id)) { echo ' id="'. $form_id .'"'; }
if (!empty($form_name)) { echo ' name="'. $form_name .'"'; }
if (!empty($form_class)) { echo ' class="'. $form_class .'"'; }
if (!empty($form_target)) { echo ' target="'. $form_target .'"'; }
echo '>';
$inputs = $dom->getelementsbytagname('input');
foreach ($inputs as $input) {
$input_name = $input->getAttribute('name');
$input_value = $input->getAttribute('value');
$input_id = $input->getAttribute('id');
$input_type = $input->getAttribute('type');
$input_class = $input->getAttribute('class');
echo '<input';
if (!empty($input_name)) { echo ' name="'. $input_name .'"'; }
if (!empty($input_value)) { echo ' value="'. $input_value .'"'; }
if (!empty($input_id)) { echo ' id="'. $input_id .'"'; }
if (!empty($input_type)) { echo ' type="'. $input_type .'"'; }
if (!empty($input_class)) { echo ' class="'. $input_class .'"'; }
echo '>';
}
echo '</form>';
}
}
一些背景信息:我希望用户给他的电子邮件表单代码复制并粘贴到一个文本框。然后,我想提取输入字段的属性以在我的模板中使用它们。
您获取dom元素的语法是错误的。它应该是'$ dom->的getElementsByTagName(“变量名”)' – Ankit