Я хочу извлечь и отобразить значения атрибутов из полей формы и ввода из заданного 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 (" tagName ")' – Ankit