【问题标题】:extract link from array php从数组php中提取链接
【发布时间】:2017-12-25 14:59:48
【问题描述】:

我正在尝试将链接与数组隔离,但在 foreach 循环中它对我不起作用。它将两个元素都视为链接。

我只想超链接 google.com 而不是面包店文本,但我正在获得两者的链接,所以如果部分不起作用并且它考虑将面包店作为链接。

$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;

【问题讨论】:

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

标签: php validation url


【解决方案1】:

这里的问题在于以下语句:

if (!filter_var($service, FILTER_VALIDATE_URL) === false)
    ^                                              ^^^^^

您在这里使用了双重否定,即! 运算符,意思是“不是”,而您使用的是“假”。

要么删除!,要么将“false”更改为“true”。

您还需要将http:// 添加到您希望使用的网址中才能正确验证。

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

Google 链接将失败。如果您希望它验证,您需要将其更改为:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 2011-09-15
    • 2017-04-18
    • 2014-06-24
    • 2019-02-18
    • 1970-01-01
    相关资源
    最近更新 更多