我想要從給定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