首页 > 解决方案 > 如何从 curl 输出中按类名获取 div 的值

问题描述

我有一个 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">

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

<div class="mws-form-message success" id="\&quot;updated\&quot;">

我怎么才能得到它 ?

标签: phphtmlcurldomxpath

解决方案


或者,如果您想使用 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);

推荐阅读