如何从提交的URL列表中获取主机URL

时间:2011-07-17 16:38:57

标签: php arrays sorting

我有一个用户提交的网址列表。我想确定:list没有White-spacing,它只包含主机值 即site.com,subdomain.site.com,site2.com,site3.net

我目前有以下代码

var list = document.getElementById( "list" ).value ;

取出列表中的空格

$vars = array_map('trim', explode(',', $list)); 

这里是$ list吗?我是一个新手,并不确定差异b / w $和var

确保列表仅包含预期URL的主机值(来自php手册)

function getHost($list) { 
   $parseUrl = parse_url(trim($list)); 
   return trim($parseUrl[host] ? $parseUrl[host] : array_shift(explode('/', $parseUrl[path], 2))); 
} 

这一次只适用于一个地址,有人可以帮助我使整个列表工作吗?需要通过逗号分隔列表

迭代此方法

感谢您的所有帮助。

2 个答案:

答案 0 :(得分:0)

您已在此处使用array_map

$vars = array_map('trim', $vars = array_map('trim', explode(',', $list)); 

您也可以使用getHost函数执行此操作(我更改了变量命名):

function getHost($url) { 
   $parseUrl = parse_url(trim($url)); 
   return trim($parseUrl[host] ? $parseUrl[host] : array_shift(explode('/', $parseUrl[path], 2)));
}

$vars = array_map('getHost', explode(',', $list));

完成工作。该函数应用于从$list创建的数组的每个成员。

答案 1 :(得分:0)

var list = document.getElementById( "list" ).value ;

是在用户将表单数据发送到服务器之前在客户端上执行的JavaScript。

$vars = array_map('trim', explode(',', $list)); 

是在表单从服务器发送到客户端之前或在客户端将表单数据发送到服务器(或两者)之后在服务器上执行的PHP。

这意味着这两条线只是远程相关的。 $list应为$_POST['list']$_GET['list'],具体取决于表单方法是GET还是POST。