preg_match 名称在输入中最后一个
我试图从输入字段获取值,但名称值是最后一个。
<input value="joe" type="hidden" name="firstname">
preg_match('/input value="(.*?)" type="hidden" name="firstname"/', $request, $firstname);
这就是我正在做的,但它不起作用..有人知道如何解决这个问题吗?
I am trying to get the value from a input field, but the name value is last.
<input value="joe" type="hidden" name="firstname">
preg_match('/input value="(.*?)" type="hidden" name="firstname"/', $request, $firstname);
This is what I am doing, but it's not working.. Anyone know how to fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
识别出
后,您可以使用以下模式提取所有属性(注意值分隔符(单引号、双引号、空格))。
将导致
https://gist.github.com/1289335
Once you have your
<input …>
identified, you can use the following pattern to extract all attributes (taking care of the value delimiters (single quote, double quote, space)).will result in
https://gist.github.com/1289335
尝试该正则表达式
并得到第三个结果
Try that regex
and get the 3rd result
你的正则表达式很好
preg_match 的最后一个参数返回一个数组
元素 0 = 整个匹配
元素 1 = 第一个括号匹配
your regex is is fine
the last arg of preg_match returns an array
element 0 = entirematch
element 1 = first parenthesis match
确保您的
参数按此顺序出现在源中。请注意,如果您使用 firebug 查看它们,它们会以任意顺序出现。
考虑将硬编码空格“
”字符替换为“
\s+
”以提高稳健性。Make sure that your
<input>
parameters appear in this order in the source. Note that they appear in arbitrary order if you look at them with firebug for example.Consider replacing hardcoded space '
' chars with '
\s+
' to improve robustness.