我在PHP变量中有一个HTML字符串。该字符串包含几个输入字段。如何通过ID获取输入字段的值?
$text = '<html><head></head><body><form action="" method="post"><label>Test</label><input type="text" name="test1" id="test1" value="Value Test" /><label>Test 2</label><input type="text" name="test2" id="test2" value="Value Test2" /></form></body></html>';
答案 0 :(得分:2)
一种可能性是使用PHP Simple HTML DOM。
以下是按ID查找输入元素并打印其值的示例:
<?php
$text = '<html><head></head><body><form action="" method="post"><label>Test</label><input type="text" name="test1" id="test1" value="Value Test" /><label>Test 2</label><input type="text" name="test2" id="test2" value="Value Test2" /></form></body></html>';
// Create DOM from URL or file
$html = str_get_html($text);
foreach($html->find('input') as $element) {
if($element->id == "test1") {
echo "Element: #".$element->id." has value: ".$element->value;
}
}
?>
答案 1 :(得分:2)
据我所知,你有一个HTML字符串,你想把它解析为HTML,然后通过它的ID找到一个元素。
如果您不想学习XML manipulation最初令人困惑的语法或编写可能错综复杂的正则表达式,可以使用像phpQuery这样的工具。
示例如下:
$html = phpQuery::newDocument($text);
$result = pq($html)->find("#id");
答案 2 :(得分:1)
$ _ POST [ 'TEST1'] $ _POST [ 'TEST2']
当然,您需要在PHP代码中使用这些内容,具体取决于您正在做什么。我的示例会将结果发布到您的操作页面。
<?php echo("Your name is ".$_POST['test1']."<BR>Your Age is ".$_POST['test2']); ?>
答案 3 :(得分:1)
虽然正则表达式不是解析HTML的首选方法,但这是我的解决方案:
<?php
$text = '<html><head></head><body><form action="" method="post"><label>Test</label><input type="text" name="test1" id="test1" value="Value Test" /><label>Test 2</label><input type="text" name="test2" id="test2" value="Value Test2" /></form></body></html>';
$id = 'test1';
preg_match_all("/<input type=\"text\"(.*)id=\"$id\" value=\"(.*?)\"(.*)>/",$text,$matches);
$value = '';
if(isset($matches[2][0])){
$value = $matches[2][0];
}
echo 'Value: '.$value;