2014-02-20 79 views
2

我在这里得到了一个问题。 我解析网页,这里是我当前的代码:PHP网页解析到MYSQL数据库

<?php 
// Include the library 
include('simple_html_dom.php'); 

// Retrieve the DOM from a given URL 
$html = file_get_html('siteone.htm'); 

// //Dates 
echo 'Dates:<br />'; 
foreach($html->find('div.collectionLog td') as $e) { 
    $text = $e->innertext; 
    $string = preg_replace("/\([^)]+\)/","",$text); 
    echo $string . '<br>'; 
} 
?> 

下面是HTML代码:

<div class="data-container collectionLog"> 
    <h3>Collection Log</h3> 
    <div id="lcLoanPerf2"> 

     <table id="lcLoanPerfTable2" class="plain-table"> 
      <tbody> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

      </tbody> 
     </table> 
    </div> 

现在我想做的是将信息插入到数据库中。我知道如何做到这一点,但我很困惑如何使它在同一行插入td时间和没有class/id的td。
所以基本上我想:

    <td class="time">**/**/**</td> 
        <td>***********</td> 

成一排,在它自己的MYSQL行基本上<tr class="">
对不起,如果我没有足够的描述性,第一次,这是很难解释这一点。
如果你不明白,请让我知道。试图让这成为可能。

感谢,
Gamemann

回答

0

请使用解析网站类似PHP Simple HTML DOMSymfony DOM Crawler(与Symfony CSS Selector),而不是正则表达式。

使用Symfony的DOM履带,看到这个工作示例:

<?php 

include 'vendor/autoload.php'; 

use Symfony\Component\DomCrawler\Crawler; 

$crawler = new Crawler('<div class="data-container collectionLog"> 
    <h3>Collection Log</h3> 
    <div id="lcLoanPerf2"> 

     <table id="lcLoanPerfTable2" class="plain-table"> 
      <tbody> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class="odd"> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

       <tr class=""> 
        <td class="time">**/**/**</td> 
        <td>***********</td> 
       </tr> 

      </tbody> 
     </table> 
    </div>'); 

$tfList = $crawler->filter('#lcLoanPerfTable2 tr td'); 

foreach($tfList AS $list) { 
    foreach($list->childNodes as $node) { 
     var_dump($node->wholeText); 
    } 
} 

这种方式,你有td -list并在foreach中,(在这种情况下,两个)td元素。你可以将它们保存到数据库中,或者做任何你想做的事情。