2017-03-15 2 views

Répondre

2

get_meta_tags ne récupère que les méta-données sans balises HTML supplémentaires ou informations

Voici un code qui va chercher toutes les méta et informations sur une page Web utiliser comme vous le souhaitez pour votre code:

Vous devriez obtenir votre méta @$test["metaTags"]["description"]["html"];

dans le code ou la mise en jachère vous pouvez l'utiliser comme vous le voulez

function getUrlData($url) { 
$result = false; 

$contents = getUrlContents($url); 

if (isset($contents) && is_string($contents)) { 
    $title = null; 
    $metaTags = null; 

    preg_match('/<title>([^>]*)<\/title>/si', $contents, $match); 

    if (isset($match) && is_array($match) && count($match) > 0) { 
     $title = strip_tags($match[1]); 
    } 

    preg_match_all('/<[\s]*meta[\s]*name="?' . '([^>"]*)"?[\s]*' . 'content="?([^>"]*)"?[\s]*[\/]?[\s]*>/si', $contents, $match); 

    if (isset($match) && is_array($match) && count($match) == 3) { 
     $originals = $match[0]; 
     $names = $match[1]; 
     $values = $match[2]; 

     if (count($originals) == count($names) && count($names) == count($values)) { 
      $metaTags = array(); 

      for ($i = 0, $limiti = count($names); $i < $limiti; $i++) { 
       $metaTags[$names[$i]] = array(
        'html' => htmlentities($originals[$i]), 
        'value' => $values[$i] 
       ); 
      } 
     } 
    } 

    $result = array(
     'title' => $title, 
     'metaTags' => $metaTags 
    ); 
} 
return $result;} 


function getUrlContents($url, $maximumRedirections = null, $currentRedirection = 0) { 
$result = false; 

$contents = @file_get_contents($url); 

// Check if we need to go somewhere else 

if (isset($contents) && is_string($contents)) { 
    preg_match_all('/<[\s]*meta[\s]*http-equiv="?REFRESH"?' . '[\s]*content="?[0-9]*;[\s]*URL[\s]*=[\s]*([^>"]*)"?' . '[\s]*[\/]?[\s]*>/si', $contents, $match); 

    if (isset($match) && is_array($match) && count($match) == 2 && count($match[1]) == 1) { 
     if (!isset($maximumRedirections) || $currentRedirection < $maximumRedirections) { 
      return getUrlContents($match[1][0], $maximumRedirections, ++$currentRedirection); 
     } 

     $result = false; 
    } else { 
     $result = $contents; 
    } 
} 

return $contents;} 

$test = getUrlData('http://ocsidtechnologies.com'); //Replace with your URL here 
echo '<pre>';print_r($test); 
+1

ok merci, j'ai essayé votre code qui fonctionne bien :) – Ygg69

+0

@ ShaH: Comment puis-je obtenir tous mes balises META comme catégorie sage, est-ce possible? – Rathinam

+1

@Rathinam Je pense que le code ci-dessus répond au même code s'il vous plaît copier le code dans le système local et parcourir le fichier pour vérifier ou simplement coller le code dans phpfiddle et courir pour voir les catégories méta tags comme auteur, description, mots-clés, etc – ShaH