【问题标题】:Data parsing-retrieval using php使用php进行数据解析-检索
【发布时间】:2011-06-30 20:52:34
【问题描述】:

假设我们在网页中有以下结构。如何使用 php 检索以下信息? 某物 XAXAXA-SASASASA 2-1 ZAZAZAZA-CACACACA 2-2

<th class='black' colspan='6'>something</th>
<tr class=''>
        <td bgcolor = '#272727' width = 40%>XAXAXA</td>
        <td bgcolor = '#272727'  width = '5%'> - </td>
        <td bgcolor = '#272727' width = '40%'>SASASASA</td>
        <td bgcolor = '#272727'  width = '5%'>2</td>
        <td bgcolor = '#272727'  width = '5%'> - </td>
        <td bgcolor = '#272727' width = '5%'>1</td>
    </tr>
<tr class=''>
        <td bgcolor = '#484848' width = 40%>ZAZAZAZA</td>
        <td bgcolor = '#484848'  width = '5%'> - </td>
        <td bgcolor = '#484848' width = '40%'>CACACACA</td>
        <td bgcolor = '#484848'  width = '5%'>2</td>
        <td bgcolor = '#484848'  width = '5%'> - </td>
        <td bgcolor = '#484848' width = '5%'>2</td>
    </tr>

【问题讨论】:

  • 您是否有权使用这些网站的内容?
  • 对不起,我不知道接受的答案。是的,我有权限

标签: php information-retrieval data-retrieval


【解决方案1】:

您可以为此使用 DOMDocument,非常简单:

$DOM = new DOMDocument();
$DOM->loadHTML($Content);
$TH = $DOM->getElementsByTagName("td");

foreach($TH as $Item)
{
    echo $Item->nodeValue;
}

【讨论】:

    【解决方案2】:

    希望你这次能接受答案!只需拉出匹配组 1 到 13。

    $sourcestring="your source string";
    preg_match_all('/<th[^>]*>([^<]*).*?<td[^>]*>([^<]*).*?<td[^>]*>([^<]*).*?<td[^>]*>([^<]*).*?<td[^>]*>([^<]*).*?<td[^>]*>([^<]*).*?<td[^>]*>([^<]*).*?<td[^>]*>([^<]*).*?<td[^>]*>([^<]*).*?<td[^>]*>([^<]*).*?<td[^>]*>([^<]*).*?<td[^>]*>([^<]*).*?<td[^>]*>([^<]*)/is',$sourcestring,$matches);
    echo "<pre>".print_r($matches,true);
    

    结果:

        [0] => Array
            (
                [0] => <th class='black' colspan='6'>something</th>
    <tr class=''>
            <td bgcolor = '#272727' width = 40%>XAXAXA</td>
            <td bgcolor = '#272727'  width = '5%'> - </td>
            <td bgcolor = '#272727' width = '40%'>SASASASA</td>
            <td bgcolor = '#272727'  width = '5%'>2</td>
            <td bgcolor = '#272727'  width = '5%'> - </td>
            <td bgcolor = '#272727' width = '5%'>1</td>
        </tr>
    <tr class=''>
            <td bgcolor = '#484848' width = 40%>ZAZAZAZA</td>
            <td bgcolor = '#484848'  width = '5%'> - </td>
            <td bgcolor = '#484848' width = '40%'>CACACACA</td>
            <td bgcolor = '#484848'  width = '5%'>2</td>
            <td bgcolor = '#484848'  width = '5%'> - </td>
            <td bgcolor = '#484848' width = '5%'>2
            )
    
        [1] => Array
            (
                [0] => something
            )
    
        [2] => Array
            (
                [0] => XAXAXA
            )
    
        [3] => Array
            (
                [0] =>  - 
            )
    
        [4] => Array
            (
                [0] => SASASASA
            )
    
        [5] => Array
            (
                [0] => 2
            )
    
        [6] => Array
            (
                [0] =>  - 
            )
    
        [7] => Array
            (
                [0] => 1
            )
    
        [8] => Array
            (
                [0] => ZAZAZAZA
            )
    
        [9] => Array
            (
                [0] =>  - 
            )
    
        [10] => Array
            (
                [0] => CACACACA
            )
    
        [11] => Array
            (
                [0] => 2
            )
    
        [12] => Array
            (
                [0] =>  - 
            )
    
        [13] => Array
            (
                [0] => 2
            )
    

    【讨论】:

    【解决方案3】:

    您可以使用正则表达式来匹配这样的模式。 preg_match() 函数是一个很好的起点。

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多