PHP获取元标记功能不适用于非http

时间:2018-05-15 19:53:46

标签: php

我希望我可以帮助解决我遇到的问题。

我使用php get meta标签功能来查看网站列表中是否存在标签,只要有没有HTTP的域,就会出现问题。

理想情况下,我想要添加HTTP,如果它不存在,我还需要一个解决方法,如果域有HTTPS,这就是我正在使用的代码。

如果我登陆域中没有HTTP的网站,我会收到此错误。

  

警告:get_meta_tags(www.drhugopavon.com/):无法打开流:第16行的C:\ xampp \ htdocs \ webresp \ index.php中没有此类文件或目录

f

3 个答案:

答案 0 :(得分:2)

您可以使用parse_url()检查元素scheme是否存在。如果没有,你可以添加它:

$urls = array(
    'https://www.smilesbycarroll.com/',
    'https://hurstbournedentalcare.com/',
    'https://www.dentalhc.com/',
    'https://www.springhurstdentistry.com/',
    'https://www.smilesbycarroll.com/',
    'www.drhugopavon.com/'
);

$urls = array_map(function($url) {
  $data = parse_url($url);
  if (!isset($data['scheme'])) $url = 'http://' . $url ;
  return $url;
}, $urls);

print_r($urls);

答案 1 :(得分:1)

您可以使用它来检查域名是否有http

foreach($urls as $url){
  if(strpos($url, "http") === FALSE) //check if the url contains http and add it to the beginning of the string if it doesn't 
    $url = "http://" . $url;

  $tags = get_meta_tags($url);
}

另一个更简单的选择是在URL中检查://

 foreach($urls as $url){
      if(strpos($url, "://") === FALSE) //check if the url contains http and add it to the beginning of the string if it doesn't 
        $url = "http://" . $url;

      $tags = get_meta_tags($url);
 }

或者您可以使用像Wild Beard建议的正则表达式

答案 2 :(得分:0)

你知道什么是搞笑的,我以为是因为它有http但是我把error_reporting(0);在我的原始代码中它起作用,因为我想要它哈哈。