2015-06-24 78 views
0

我曾嘗試這個代碼,但是這給了我唯一的超鏈接的價值,但我想提取從表中的所有數據獲取HTML表的全部數據。我的HTML表格包含1514行和7列以及分頁,其中包含125個要顯示的頁面數。我如何從表中獲取所有數據,而不僅僅是超鏈接?如何使用curl或宏

<?php 
$ch=curl_init('https://datatables.net/examples/basic_init/alt_pagination.html'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $page = curl_exec($ch); 

    preg_match('#<table[^>]*>(.+?)</table>#is', $page, $matches); 
    foreach ($matches as &$match) { 
     $match = $match; 

    } 
    echo '<table>'; 
     echo $matches[0]; 
    echo '</table>'; 
    ?> 
+0

如果您使用的庫一樣simple_html_dom這將是一個很多更容易爲你,或DOM文檔[鏈接](http://php.net/manual/en/domdocument.loadhtml.php) – Daimos

+0

我想獲取表格數據只有正文或段落。表中包含許多顯示此數據的頁面,因爲數據量很大。 –

+0

當然,你有非常好的手冊有:[鏈接](http://simplehtmldom.sourceforge.net/manual.htm) – Daimos

回答

0

就像我以前說過,還有如果你用簡單的HTML DOM沒有問題:

<?php 
include('simple_html_dom.php'); 
$html = file_get_html('https://datatables.net/examples/basic_init/alt_pagination.html'); 
$tr = $html->find('table[id=example] tr'); 
foreach ($tr as $row) 
{ 
    foreach ($row->find('td') as $td) 
    { 
     echo $td->plaintext.'<br/>'; 
    } 
    echo '<hr/>'; 
} 

索裏我剛纔看到亞歷克斯已經編輯答案了。

PS。空白頁?把error_reporting(E_ALL);在開始時,你會看到錯誤

+0

我檢查了這一點。這給我空 –

+0

頁面下載simple_html_dom庫,包括它(僅simple_html_dom.php文件),你得到了我的意見 – Daimos

+0

鏈接我有包括simple_html_dom庫,並把使用error_reporting(E_ALL);開始時數據沒有顯示在頁面上。顯示空白頁面。 –