3

我有用户放置的链接,它们将保存在数据库中

对于 facebook,网址可能是这样的

www.facebook.com
http://facebook.com
https://facebook.com
facebook.com
http://www.facebook.com
https://www.facebook.com

但是在向 facebook 显示整体统计信息的同时,我如何一次查询所有数据或者有没有办法将 url 保存在数据库中

4

2 回答 2

3

您可以在数据库中创建一个方案,为每个 URL 存储两条数据——文字 url 和标准化的。您所做的是存储您看到的 URL(上面列出的变体),但使用正则表达式,将其修剪为 facebook.com 之类的内容并将其存储在数据库中。

现在您可以通过搜索 facebook.com 来查找所有 facebook 网址,但您也知道每个条目最初是如何输入的。

于 2012-09-01T15:27:40.447 回答
0

在计算特定 URL 的出现次数时,您可以使用parse_url

~伪代码:

<?php
//Store all url variations from table
//in $all_urls (indexed array)
$fb_count = 0;
for($i=0;$i<count($all_urls);$i++){
    $url = parse_url($all_urls[$i]);
    if($url[host] == "facebook.com")
        $fb_count++;
}
//Now do something/anything-you-want with $fb_count
?>

如果您添加用于从表中获取数据的相关代码,则该代码可以更具体。

于 2012-09-01T15:38:04.267 回答