从php数组中提取链接

从php数组中提取链接,php,validation,url,Php,Validation,Url,我试图从数组中隔离链接,但在foreach循环中它对我不起作用。它将两个元素作为链接进行排序 $services=array('Bakery','www.google.com'); foreach($services as $service): if (!filter_var($service, FILTER_VALIDATE_URL) === false) { $service = $service; } else { $service =

我试图从数组中隔离链接,但在foreach循环中它对我不起作用。它将两个元素作为链接进行排序

$services=array('Bakery','www.google.com');

foreach($services as $service):

    if (!filter_var($service, FILTER_VALIDATE_URL) === false) {
        $service = $service;
    } else {
        $service = '<a href='.$service.'>'.$service.'</a>';
    }
    echo $service;
endforeach;
我只想超链接google.com,而不是bakery文本,但我会在两者上都获得链接,所以如果部分不起作用,它会考虑将bakery作为链接

$services=array('Bakery','www.google.com');

foreach($services as $service):

    if (!filter_var($service, FILTER_VALIDATE_URL) === false) {
        $service = $service;
    } else {
        $service = '<a href='.$service.'>'.$service.'</a>';
    }
    echo $service;
endforeach;
$services=array('Bakery','www.google.com');
foreach($services as$service):
如果(!filter\u var($service,filter\u VALIDATE\u URL)==false){
$service=$service;
}否则{
$service='';
}
回音$服务;
endforeach;

以下语句存在问题:

if (!filter_var($service, FILTER_VALIDATE_URL) === false)
    ^                                              ^^^^^
这里使用的是双负片,即
运算符,表示“不”,您使用的是“false”

要么删除
或将“false”更改为“true”

您还需要向希望使用的url添加
http://
,以便正确验证

$services=array('Bakery','www.google.com');
谷歌链接将失败。如果要验证,需要将其更改为:

$services=array('Bakery','http://www.google.com');

你意识到这里有一个解析错误,分号丢失了,但这不是问题,我添加了它。我的问题不是关于解析或语法错误,你必须详细描述你想要得到的结果,而不是你现在得到的结果。我已经测试了你的代码,并得到了结果。你的编辑和原始帖子没有描述这一点,你不能指望我们/我知道你想要得到什么。为了验证你的url,你必须。。。http://www.google.com我早些时候重新打开了你的问题,你没有费心回复我,也没有回答给出的答案@user2477139我看到编辑的唯一原因是我重新访问了它。