Bonjour,
Je constate au quotidien qu'encore trop d'annuaires ne capture pas automatique les métas, ile me semble que c'est un frein.
Voici quelques ligne de codes qui devraient vous aider à rédiger quelque chose.
if ( $_GET['action']=='meta_send' )
{
$url = isset($_GET['url']) ? $_GET['url'] : '';
url_valide ( $url, true );
list($url,$url_image,$nom_proprio,$email_proprio,$titre,$description,$location,$keyw,$icbm) = preremplir_formulaire($url,true);
}
URL_VALIDE(), n'a pas une grande importance mais on ne sait jamais à toutes fins utiles
function url_valide ($url,$inc = false)
//verifie la validite d'une url : commence par http:// + non vide
{
global $PMA_infos;
$message = "";
if (empty($url) || $url == "http://")
$message .= "Votre url ne peut être vide !";
else //on doit verifier l'adresse
{
//on verifie si c'est bien le bon type de site
$cmp_h = strcmp(substr($url,0,7),"http://");
$cmp_n = strcmp(substr($url,0,7),"news://");
$cmp_f = strcmp(substr($url,0,6),"ftp://");
$cmp_m = strcmp(substr($url,0,7),"mailto:");
if ($cmp_h != 0 && $cmp_n != 0 && $cmp_f != 0 && $cmp_m != 0)
$message .= "Url non valide ! Elle doit commencer par http:// (ou news:// ou encore ftp:// ou mailto:)";
//on verifie si l'URL n'est pas KO
if ($cmp_h == 0) //si c'est une URL http://
{
$url_parsee = @parse_url($url);
$host = trim($url_parsee["host"]);
$path = isset($url_parsee['path']) ? trim($url_parsee["path"]) : '/';
if (check_syntaxe_domaine($host))
{
//si la syntaxe semble bonne on verifie la connexion
if ( $PMA_infos['detect_url'] ) {
$tab_return = check_connect($host,$path);
if ($tab_return["statut"] == 0)
$message .= "<br>Impossible de trouver le site $url !\n";
};
}
else
{ $message .= "<br>Erreur de syntaxe dans le domaine du site : $host !"; }
}
}
//si on a un message d'erreur il faut quitter
if ($message)
{
$message .= "<br><br>\n";
$message .= "<a href=\"javascript:history.go(-1);\">Retour au formulaire</a>\n";
echo "<CENTER>$message</CENTER>";
if ($inc)
include("after.php");
exit;
}
else
{ return true; } //on rend vrai car si c'est pas bon on a quitte avant
}
Tant qu'on y est le remplissage :
function preremplir_formulaire($url,$fill)
// Préremplir le formulaire d'inscription grâce aux metas et la détection d'images
{
if ( $fill )
{
global $PMA_infos;
preg_match("/^(\d)(\d)(\d)$/",$PMA_infos['detect_images'],$detect_images);
$detect_images = array (
'ascreen' => $detect_images[1],
'thumbshots' => $detect_images[2],
'alexa' => $detect_images[3],
);
asort($detect_images);
$detected = false;
foreach ( $detect_images as $methode => $ordre )
{
if ( $ordre )
{
$url_image = detect_images($methode,$url);
if ( $url_image ) {
$detected = true;
break;
};
};
};
$url_image = $detected ? $url_image : 'http://';
if ( $PMA_infos['func_get_meta_tags'] )
{
$fp = @fopen($url, 'r');
$head = @fread($fp, 1024);
@fclose($fp);
}
else
{
$head = null;
};
if ( $head )
{
$tags = @get_meta_tags($url);
$nom_proprio = isset($tags['author']) ? $tags['author'] : '';
$email_proprio = isset($tags['reply-to']) ? $tags['reply-to'] : ( isset($tags['email']) ? $tags['email'] : '' );
$titre = preg_match( "/<title>([^<]*)<\/title>/si", $head, $match ) ? $match[1] : '';
$description = $tags['description'] ? $tags['description'] : '';
$location = $tags['location'] ? $tags['location'] : '';
$keywords = $tags['keywords'] ? $tags['keywords'] : '';
$icbm = $tags['icbm'] ? $tags['icbm'] : 'Pas de Géo Localisation';
};
return array( $url, $url_image, $nom_proprio, $email_proprio, $titre, $description, $location, $keywords, $icbm);
}
Bon usage
