我有一个数组 $ link ,其中包含一些链接,我想删除所有来自 $ Blocklinks
中的网站的链接 $links=array(
'http://ckfht.ca/sultan/files/2016/',
'http://dl1.uploadplus.net/dl2/2016/Sultan.2016/',
'http://www.google.com',
'http://subindomovie.xyz/film/indexof-sultan-720p'
'http://subindomovie.xyz/film/sultan-720-p'
'http://www.liveaccountbook.com/sultan/'
);
$Blocklinks=array(
'subindomovie.xyz',
'www.liveaccountbook.com'
);
/* remove urls containing link from $Blocklinks .. What should i do here??*/
$links=deletelinks($links,$Blocklinks);
/* output */
print_r($links);
output I want
------
Array
(
[0] => http://ckfht.ca/sultan/files/2016/
[1] => http://dl1.uploadplus.net/dl2/2016/Sultan.2016/
[2] => http://www.google.com
)
答案 0 :(得分:4)
如果您只需按主机名过滤网址,则可以这样做:
$result = array_filter($links, function ($i) use ($Blocklinks) {
return !in_array(parse_url($i, PHP_URL_HOST), $Blocklinks); });
如果您想用空字符串替换网址:
功能方式:
$result = array_map(function ($i) use ($Blocklinks) {
return in_array(parse_url($i, PHP_URL_HOST), $Blocklinks) ? '' : $i;
}, $links);
程序方式:
$result = [];
foreach($links as $link) {
$result = in_array(parse_url($link, PHP_URL_HOST), $Blocklinks) ? '' : $link;
}
答案 1 :(得分:1)
$links = array_filter($links, function ($link) use ($Blocklinks) {
foreach ($Blocklinks as $block) {
if (strstr($link, $block) !== false) {
return false;
}
}
return true;
});
答案 2 :(得分:0)
在deletelinks()
功能...
function deletelinks($links,$Blocklinks)
{
foreach($links as $key => $link)
{
foreach($Blocklinks as $bLink)
{
if (strpos($link,$bLink) !== false) {
unset($links[$key]);
}
}
}
return $links;
}
这会让你回复:
Array
(
[0] => http://ckfht.ca/sultan/files/2016/
[1] => http://dl1.uploadplus.net/dl2/2016/Sultan.2016/
[2] => http://www.google.com
)
现场示例:CLICK HERE
答案 3 :(得分:0)
似乎你正在思考一个函数的行,这个函数会删除链接,因此
deletelinks($links, $Blocklinks)
。也许下面的功能派上用场......你也可以try it out here。
<?php
$links = array(
'http://ckfht.ca/sultan/files/2016/',
'http://dl1.uploadplus.net/dl2/2016/Sultan.2016/',
'http://www.google.com',
'http://subindomovie.xyz/film/indexof-sultan-720p',
'http://subindomovie.xyz/film/sultan-720-p',
'http://www.liveaccountbook.com/sultan/',
);
$blockLinks = array(
'subindomovie.xyz',
'www.liveaccountbook.com',
);
$newLinks = deleteLinks($links, $blockLinks);
var_dump($newLinks);
function deleteLinks($links, $blockLinks){
foreach($links as $key=>$link){
foreach($blockLinks as $index=>$blockLink){
if(stristr($link, $blockLink)){
unset($links[$key]);
}
}
}
return $links;
}
// THE var_dump($newLinks) ABOVE WOULD PRODUCE SOMETHING LIKE:
array (size=3)
0 => string 'http://ckfht.ca/sultan/files/2016/' (length=34)
1 => string 'http://dl1.uploadplus.net/dl2/2016/Sultan.2016/' (length=47)
2 => string 'http://www.google.com' (length=21)