PB variable dans récupération de titre de page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PB variable dans récupération de titre de page

par Ryle » 05 juin 2009, 18:18

Pas sur d'avoir tout compris, mais à première vue, lorsque tu récupères l'url de la page, au lieu de juste l'afficher, tu peux également l'utiliser pour en connaitre le titre :
<?php 
  $url = curPageURL(); 
  $titre =  page_title($url);
?> 
<a href="http://www.facebook.com/share.php? 
            u=<?php echo $url; ?> 
            &t=<?php echo $titre; ?> 
            &summary=RESUME DE LA PAGE  
            &source=URLSOURCE.html" target="_new"> 
<img src="share_facebook.gif" border="0" alt="Facebook"></a>

PB variable dans récupération de titre de page

par Katastrof » 05 juin 2009, 16:18

Bonjour
L'idée est d'intégrer les outils "social web" sur un site, notamment leur système de recommandation de page. typiquement, pour facebook, cela se code comme suit:
<a href="http://www.facebook.com/share.php?
			u=URLDELAPAGE.html
			&t=TITREDELAPAGE
			&summary=RESUME DE LA PAGE 
			&source=URLSOURCE.html" target="_new">
<img src="share_facebook.gif" border="0" alt="Facebook"></a>
EN principe, on doit donc insérer les variables (url, titre, résumé, source) manuellement. Je cherche donc à remplacer ce "manuellement" par des automatismes et donc à récupérer l'url et le titre (le reste est constant) de la page pour l'insérer dans le lien facebook. Ensuite, l'idée est tout simplement de mettre un include dans toutes les pages.

pour l'instant, j'en suis à récupérer l'url avec le code PHP suivant:
Code :
<?php
			function curPageURL() {
			 $pageURL = 'http';
			 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
			 $pageURL .= "://";
			 if ($_SERVER["SERVER_PORT"] != "80") {
			  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
			 } else {
			  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
			 }
			 return $pageURL;
			}
			?>
Avec dans le lien Facebook: u=<?php echo curPageURL(); ?>

Par contre je n'arrive pas à récupérer le titre. Ci dessous le script qui s'approche le plus du résultat souhaité. :
<?php
    function page_title($url) {
        $fp = file_get_contents($url);
        if (!$fp) 
            return null;
 
        $res = preg_match("/<title>(.*)<\/title>/", $fp, $title_matches);
        if (!$res) 
            return null; 
 
        $title = $title_matches[1];
        return $title;
    }
?>
avec dans l'url facebook: t=<?php echo page_title("URLDEMAPAGE.HTML"); ?>


Vous voyez le problème? l'url doit être défini à la mano. Comment fais je donc pour fusionner les deux scripts et avoir le curPageURL() dans le lien facebook, c.a.d. un url variable?

J'ai vu quelques solutions qui recommandait de créer des bases de données de titre mais je souhaite éviter cela puisque ce serait trop lourd à gérer et une trop grande source d'erreur.

Enfin, je répète la contrainte qui est de pouvoir mettre tout cela dans un include et insérer l'include dans chaque page du site.

Merci d'avance