从php字符串中获取输入文本值

时间:2014-01-22 19:38:18

标签: php html

我在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>';

4 个答案:

答案 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;