【问题标题】:scrape html tag with regex. Very confused用正则表达式刮掉 html 标签。很迷茫
【发布时间】:2014-05-17 01:02:59
【问题描述】:

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 就是一个例子。

【问题讨论】:

    标签: php regex curl


    【解决方案1】:

    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 解析器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 2018-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多