scrape html标签与正则表达式。非常困惑

时间:2014-05-17 01:03:00

标签: php regex curl

尝试学习正则表达式4个小时,我总是收到错误。我希望获得cURL的action值。

<form id="loginForm" name="loginForm" method="post" action="M_Username_Password.aspx?__ufps=802858&amp;84E09046BECF819E=6C1143C04AF5072F1DF5B1C51C90DACB">

从表格标签中取出这部分:

M_Username_Password.aspx?__ufps=802858&amp;84E09046BECF819E=6C1143C04AF5072F1DF5B1C51C90DACB

并与cURL一起使用。

curl_setopt($ch, CURLOPT_URL, "http://website.com/$linkaction");

$linkaction就是一个例子。

1 个答案:

答案 0 :(得分:0)

Regular expression

<form.*?action="([^"]*)".*?>

结合preg_match_all()

$html = '<form id="loginForm" name="loginForm" method="post" action="M_Username_Password.aspx?__ufps=802858&amp;84E09046BECF819E=6C1143C04AF5072F1DF5B1C51C90DACB">'; // from cURL
preg_match_all('/<form.*?action="([^"]*)".*?>/i', $html, $matches);

var_dump($matches[1]); // An array of form actions
// array(1) {
//   [0]=>
//   string(92) "M_Username_Password.aspx?__ufps=802858&84E09046BECF819E=6C1143C04AF5072F1DF5B1C51C90DACB"
// }

但最后,don't rely on regex to parse HTML。尝试像DOMDocument这样的DOM解析器。