使用PHP从联属网址提取域名

时间:2016-07-18 10:02:55

标签: php

以下是我拥有http://tracking.vcommission.com/aff_c?offer_id=2119&&url=http%3A%2F%2Fwww.netmeds.com%2F%3Fsource_attribution%3DVC-CPS-Emails%26utm_source%3DVC-CPS-Emails%26utm_medium%3DCPS-Emails%26utm_campaign%3DEmails

的联盟网址格式

如果您看到它有2个网址: 第一个URL:适用于vcommission.com和 第二个网址:netmeds.com

我有很多行的CSV文件。每行可以具有不同的第二URL。我想获得每行的第二个URL。对于不同的CSV,第一个URL也不是静态的,这也会有所不同。

如何获取第二个网址?

2 个答案:

答案 0 :(得分:1)

这样的一些基本字符串解析应该会给你一个想法。

$url='http://tracking.vcommission.com/aff_c?offer_id=2119&&url=http%3A%2F%2Fwww.netmeds.com%2F%3Fsource_attribution%3DVC-CPS-Emails%26utm_source%3DVC-CPS-Emails%26utm_medium%3DCPS-Emails%26utm_campaign%3DEmails';

list($u,$q)=explode('url=',urldecode($url));
$o=(object)parse_url($q);

echo $o->host;

答案 1 :(得分:0)

查找网址的一种好方法是使用parse_url

不幸的是,由于您的数据存储方式,这不是一个真正的选项,但是您可以使用某种正则表达式来查找查询字符串中包含的Web地址

<?php
$url = "http://tracking.vcommission.com/aff_c?offer_id=2119&&url=http%3A%2F%2Fwww.netmeds.com%2F%3Fsource_attribution%3DVC-CPS-Emails%26utm_source%3DVC-CPS-Emails%26utm_medium%3DCPS-Emails%26utm_campaign%3DEmails";
$p = parse_url($url);
$pattern = "/www[^%]*/";

preg_match($pattern, $p['query'], $result);

var_dump($result);

您可能需要根据其他数据的呈现方式调整正则表达式模式。