0

我有这个从数据库输出 URL 和点击计数的工作查询。

<?php
$query = "SELECT *,count(*) FROM db_data WHERE ip GROUP BY data_url";
    $sampleCount = mysql_query($query);
    $result = mysql_query($query);
    if($sampleCount > 0) {
        while ($row =mysql_fetch_array($result)) {
            $dataList_br .= '<div class="info_table">
                                 <div class="info_table1">
                                     <p>' .$row['data_url']. '</p>
                                 </div>
                                 <div class="info_table2">
                                     <p>' .$row['count(*)']. '</p>
                                 </div>
                             </div>';
        }
    } else {
        $dataList_br .= '<p class="warning">No data found in database. Please contact admin.</p>';
    }

这将输出:“/somepath/index.php”和总计数,例如“24”,以及其他具有总命中数的 url 集。

问题:如何将 URL 输出“/somepath/index.php”更改为字符串名称,如“页面名称”,而不是显示 URL。

任何帮助是极大的赞赏。

4

2 回答 2

1

使用它,您将能够显示页面标题而不是 URL

//let a url be so 
$url = 'http://google.com';

function file_get_contents_curl($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    $data = curl_exec($ch);
    $info = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
    return $data;
}

//fetching url data via curl
$html = file_get_contents_curl($url);

if($html) {
    //parsing begins here
    $doc = new DOMDocument();
    @$doc->loadHTML($html);
    $nodes = $doc->getElementsByTagName('title');
    $title = $nodes->item(0)->nodeValue;
    echo $title;
}
于 2012-06-27T16:57:26.257 回答
1

有三种方法可以做到这一点:

  1. 您可以在表格中多放一列,其中将包含 url 的页面名称。您可以简单地使用它。
  2. 您可以将映射作为关联数组放入常量文件中。您可以从中获取该 url 的页面名称值。
  3. 您可以像这样简单地将这种情况放在您的代码中:

    $query = "SELECT *,count(*) FROM db_data WHERE ip GROUP BY data_url";
    $sampleCount = mysql_query($query);
    $result = mysql_query($query);
    if($sampleCount > 0) {
        while ($row =mysql_fetch_array($result)) {
            $dataList_br .= '<div class="info_table">
                                 <div class="info_table1">
                                     <p>' .
    if($row['data_url'] == "/somepath/index.php"){
         $html = file($row['data_url']);
         //or file_get_contents() method can be used.
         print_r($test['title']); // put index as per the html
    }else{
        echo $row['data_url']
    }. '</p>
                                     </div>
                                     <div class="info_table2">
                                         <p>' .$row['count(*)']. '</p>
                                     </div>
                                 </div>';
            }
        } else {
            $dataList_br .= '<p class="warning">No data found in database. Please contact admin.</p>';
        }
    

您可以使用file()file_get_contents。不同之处在于 file() 返回数组,而另一个返回字符串。

于 2012-06-27T17:08:52.660 回答