我想查看所有字段输入和文本区域,但是我不知道如何 一起显示在同一代码中。 如果我想跳过一些东西,例如,我想写 直接输入姓名而无需让他检查类型,或者我不希望他向我显示只读信息,怎么办?
<form method="post" action="" id="submit_form">
<input type="text" name="TITLE" value="" size="40" maxlength="100" class="text" />
<textarea name="DESCRIPTION" rows="4" cols="36" class="textarea"></textarea>
<input type="text" name="DESCRIPTION_limit" size="4" class="limit_field" readonly="readonly" value="250" />
<textarea name="ARTICLE" id="ARTICLE" rows="6" cols="50" class="textarea"></textarea>
<input type="text" name="META_KEYWORDS" value="" size="40" maxlength="2000" class="text" />
preg_match_all('/<(input)[\s](type)="?([^>"]*)"?[\s](name)="?([^>"]*)"?[\s]/', file_get_contents($url), $matches);
echo"<pre>";
print_r($matches);
答案 0 :(得分:1)
我用“ $ string”行测试了此代码。输入标签中的类型和名称属性可以按任何顺序排列,并且会搜索直到读取“>”字符为止。
$string = '<input type="text" name="TITLE" value="" size="40" maxlength="100" class="text" />';
preg_match_all('/<input[^>]*?(?:(type)="([^"]*)")|(?:(name)="([^"]*)")/', $string, $matches);
if($matches[1][0] == "type" && $matches[3][1] == "name"){
$type = $matches[2][0];
$name = $matches[4][1];
}
elseif($matches[1][0] == "name" && $matches[3][1] == "type"){
$name = $matches[2][0];
$type = $matches[4][1];
}
else{
throw new Exception('no input tags with type and name attributes were found!');
}
echo $type;
echo $name;