【问题标题】:How to get the value of div by classname from curl output如何从 curl 输出中按类名获取 div 的值
【发布时间】:2021-05-15 18:59:03
【问题描述】:

我有一个 php curl。它工作正常。

<?PHP

//here i have the post parameters/login   
 
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_COOKIEJAR, COOKIE_FILE);
curl_setopt($curl, CURLOPT_USERAGENT, USER_AGENT);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
echo curl_exec($curl);

curl_close($curl);

?>

我得到了输出(作为网页代码)。我只想得到一个值,但我不知道如何用 DOM/Xpath 解析它。

输出:

<!-- Inner Container Start -->
            <div class="container">
               
                <!-- Panels Start -->
<div class="mws-form-message success" id="\&quot;updated\&quot;">
                Server started.
           </div><script id="facebook-jssdk" src="https://connect.facebook.net/en_US/sdk.js"></script><script src="https://code.jquery.com/jquery-latest.js"></script>
            <script type="text/javascript">             
                $('#updated').hide().fadeIn(800).delay(6000).fadeOut(800)
            </script><link rel="stylesheet" type="text/css" href="modules/teamspeak3/viewer/tsstatus.css">
 <div class="mws-panel grid_8">
                    <div class="mws-panel-header">
                    <span><i class="icon-graph"></i>server stat</span>
                    </div>
                    <div class="mws-panel-body">    
                    <script type="text/javascript" src="js/ajax.jquery.js"></script>
                    <script type="text/javascript" src="js/ajax.main.js"></script>
                    <script type="text/javascript" src="js/ajax.xmlhttp.js"></script>

                    <div class="mws-stat-container clearfix">

我只需要字符串的值:“服务器启动”:

&lt;div class="mws-form-message success" id="\&amp;quot;updated\&amp;quot;"&gt;

我怎样才能得到它?

【问题讨论】:

标签: php html curl dom xpath


【解决方案1】:

我尝试了这个 sn-p,它按预期工作

$doc = new DomDocument();
$doc->validateOnParse = true;
$doc->loadHTML('<html><body id="me">Test<br></body></html>');

var_dump($doc->getElementById('me')->nodeValue); // test

您可以根据自己的需要调整它,也可以查看 php 文档https://www.php.net/manual/en/domdocument.loadhtml.php,它也会让您找出更多解决方案

【讨论】:

    【解决方案2】:

    或者如果你想使用 XPath 来获取值:

    $doc = new DOMDocument;
    $doc->loadHTML($your_input_string);
    $xpath = new DOMXPath($doc);
    $result = $xpath->query("//div[contains(@class,'mws-form-message')]");
    echo trim($result[0]->nodeValue);
    

    【讨论】:

      猜你喜欢
      • 2015-09-16
      • 2022-10-17
      • 2017-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多