我刚开始学习DOM Parser。
我们假设在http://test.com中我有 4行,如下所示,我正在尝试将上下文提取为文本。 我只需要LPPR 051600Z 35010KT CAVOK 27/14 Q1020作为JSON有效载荷发送到传入的webhook。
<FONT FACE="Monospace,Courier">LPPR 051600Z 35010KT CAVOK 27/14 Q1020</FONT><BR>
从这个例子中,我怎么能用$ html = str_get_html和$ html-&gt;找到???
我设法发送完整的HTML内容,但这不是我想要的。
<?php
include_once('simple_html_dom.php');
$html = file_get_html('http://test.com')->plaintext;
// The data to send to the API
$postData = array('text' => $html);
// Setup cURL
$ch = curl_init('https://uri.com/test');
curl_setopt_array($ch, array(
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => array(
'Authorization: '.$authToken,
'Content-Type: application/json'
),
CURLOPT_POSTFIELDS => json_encode($postData)
));
// Send the request
$response = curl_exec($ch);
// Check for errors
if($response === FALSE){
die(curl_error($ch));
}
// Decode the response
$responseData = json_decode($response, TRUE);
// Print the date from the response
echo $responseData['published'];
?>
非常感谢
答案 0 :(得分:0)
您可以使用PHP:DOM
替代simple_html_dom
以下示例获取谷歌搜索链接。
<?php
# Use the Curl extension to query Google and get back a page of results
$url = "http://www.google.com";
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$html = curl_exec($ch);
curl_close($ch);
# Create a DOM parser object
$dom = new DOMDocument();
# Parse the HTML from Google.
# The @ before the method call suppresses any warnings that
# loadHTML might throw because of invalid HTML in the page.
@$dom->loadHTML($html);
# Iterate over all the <a> tags
foreach($dom->getElementsByTagName('font') as $link) {
# Show the <font>
echo $link->textContent;
echo "<br />";
}
?>
$dom->getElementsByTagName('font')
替换您想要的标记。
快乐刮刮
参考: http://htmlparsing.com/php.html http://php.net/manual/en/book.dom.php
答案 1 :(得分:0)
如果您确定该行与此一行完全相同,则可以
$line = explode('<br>', $response);
这将创建一个数组,每个位置的每一行都有<FONT>xxxxx</FONT>
。
仅获取第二行的文字
$filteredResponse = strip_tags($line[1]);