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


How can I get the host URLs from a list of URLs submitted

我有一个用户提交的URL列表。我想确保:列表没有白色间距,并且只包含主机值即site.com、子域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))); 
} 

这一次只适用于一个地址,有人能帮我让它适用于整个列表吗?需要通过逗号分隔列表迭代此方法

感谢你的帮助。

您已经在此处使用了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创建的数组的每个成员。

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

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

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

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

这意味着这两条线只是遥远的联系。$list应该是$_POST['list']$_GET['list'],这取决于表单方法是GET还是POST。