PHP - 使用REGEX选择输入类型

时间:2017-07-09 10:19:16

标签: php html regex

我为标题道歉,我不知道如何恰当地表达它 但问题出在这里:

preg_match_all("/  (<input[^>]+>)  |  <select[^>]+>(.+?)<\/select  |  <textarea[^>]+>([^<]+)  /xims", $form, $matches);



在我正在看的形式中,有一个文件上传输入

<input type="file" name="upload">

但是当我这样做时

print_r($matches);


我得到“文本”字段,但没有提取“文件”字段..

我想在$ matches []中包含“文件”输入类型。

我在正则表达式中非常弱,而且我用Google搜索了很多,但没有发现任何确切的信息 我很感激你的回答,谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个正则表达式:

/(?:<(select|textarea)[^>]*>[^<]+<\/\1>)|(<input[^>]*type=\"([a-z]+)\"[^>]*\/?>)/ximsg

Regex Demo

示例来源:(Run here

$re = '/(?:<(select|textarea)[^>]*>[^<]+<\/\1>)|(<input[^>]*type=\"([a-z]+)\"[^>]*\/?>)/xims';
$str = '<input type="file" name="upload">
<input type="text" name="upload1">
<select > bla bla bla </select>
<textarea>abc</textarea>
';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
var_dump($matches);