Vous êtes ici Codes PHP et MySQL > URL > Favilink - Affichez un favicon à côté de vos...

 

Favilink - Affichez un favicon à côté de vos adresses

Tout à l'heure, en naviguant sur un site internet j'ai remarqué que la majorité des liens affichés étaient accompagnés d'un favicon. J'ai trouvé ce concept super sympa et j'ai donc eu envie de développer une fonction capable de le faire automatiquement. Je vous présente donc Favilink.
 
PHPLizardo
Site de l'auteur voir
[2] sources en PHP voir
Code vu 27732 fois
Enregistré le 01 Nov 2010
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Favilink - Affichez un favicon à côté de vos adresses
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Favilink - Affichez un favicon à côté de vos adresses     */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts614-PHP.htm              */
/* Auteur         : PHPLizardo                                                */
/* Date édition   : 01 Nov 2010                                               */
/* Website auteur : http://www.europasecurity.org                             */
/*                                                                            */
/******************************************************************************/


    /**
     * Favilink
     *
     * Affiche un lien précédé du favicon 
     * du site internet de destination.
     *
     * @author        PHPLizardo
     * @version        1
     * @license        CC BY-NC-SA
     *
     * @param        string    $url    url à laquelle vous souhaitez ajouter le favicon.
     * @param        string    $alt    favicon alternative dans le cas ou le site internet
 concerné n'en possède pas.
     *
     */

    function favilink $url$text null$alt null)
    {
    
        /**
         * Si un texte pour le lien est fourni, on utilise ce dernier,
         * dans le cas contraire, on affiche l'url donnée.
         */
         
        $text = ( is_empty $text ) ) ? $url $text;
    
        /**
         * La valeur du paramètre $url doit impérativement
         * être un url valide. On vérifie cette condition.
         */
         
        $url filter_var $urlFILTER_VALIDATE_URLFILTER_FLAG_HOST_REQUIRED
 );
        
        if ( $url !== FALSE )
        {
        
            /**
             * Nous devons extraire le nom de domain de l'url
             * passée en paramètre. On découpe l'url en portions.
             */
            
             $parts parse_url($url);
             
             /**
              * Récupération du nom de domaine par recomposition de
              * l'url précédemment découpée.
              */
              
             $domain $parts['scheme'] . '://' $parts['host'];
             
             /**
              * Récupération du favicon. On recherche le favicon dans le répertoire
              * racine du site internet car c'est l'endroit le plus répendu. Si, et
              * seulement si le fichier n'existe pas, on télécharge la page distante
              * et on extrait l'adresse du favicon depuis l'en-tête de la page.
              */
             
             $favicon $domain '/favicon.ico';
             
             if ( file_get_contents $favicon ) === FALSE )
             {
             
                $page file_get_contents $domain );
                
                if ( preg_match '#<link rel=\"(shortcut )?icon\"( type="image/png")? href=\"(.+)\" />#'$page$match ) )
                {
                     
                    $favicon $match[3];     
                
                }
                else
                {
                
                    /**
                     * Si il n'y a aucun favicon défini pour ce site internet, dans le cas ou
 une
                     * image alternative est fourni, on affiche cette dernière, sinon on
 affiche rien.
                     */
                    if($alt != null)
                    {
                    
                        $favicon $alt;
                    
                    }
                    else
                    {
                    
                        return '<a href="' htmlspecialchars $url ) . '">' htmlspecialchars $text ) . '</a>';
                    
                    }
                
                }
                
                /**
                 * Si c'est une adresse abosulue, par exemple dans le cas où le favicon
                 * est situé sur un site internet externe ou un sous-domaine, on récupère
                 * l'adresse entière. Sinon on combine le nom de domaine et l'adresse
 relative
                 * du favicon pour recréer une adresse valide.
                 */
                 
                if( filter_var $faviconFILTER_VALIDATE_URLFILTER_FLAG_HOST_REQUIRED ) === FALSE )
                {

                    /**
                     * On retire l'éventuel slash (/) qui se situe au début de l'adresse
                     * relative pour éviter le double slash.
                     */
                     
                    if ( $favicon{1} == '/' ) 
                    {
                    
                        $favicon substr $favicon);
                    
                    }
                    
                    $favicon $domain $favicon;
                    
                }                
             
             }
             
             return '<img src="' htmlspecialchars $favicon ) . 
'" alt="" title=" ' htmlspecialchars $domain ) .  ' " />&nbsp;' . 
                    '<a href="' htmlspecialchars $url ) . '">' htmlspecialchars $url ) . '</a>';
            
        }
    
    }
    
?>

 

Fonctions du code

: Filtre une variable avec un filtre spécifique - (PHP 5 >= 5.2.0, PECL...
: Analyse une URL et retourne ses composants - (PHP 4, PHP 5)
: Lit tout un fichier dans une chaîne - (PHP 4 >= 4.3.0, PHP 5)
: Expression rationnelle standard - (PHP 4, PHP 5)
: Convertit les caractères spéciaux en entités HTML - (PHP 4, PHP 5)
: Retourne un segment de chaîne - (PHP 4, PHP 5)
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 

Connexion

 
 

URL

 
 

PHP

 
 
        Publicité