Récupérer la balise <title> en php

WRInaute discret
Bonjour

Est-ce que quelqu'un pourrait m'aider a créer le code en php pour récupérer la balise <TITLE>aaaa</TITLE> pour affiché juste le aaaa dans le titre d'un cadre sur ma page web.

Merci d'avance pour vos réponses :wink:
Bonne aprés-midi
 
Nouveau WRInaute
Salut,

Il faut que tu le fasse en javascript...

tu peux faire un truc style :

Code:
document.write(document.title);

dans le cadre... En php tu ne pourra pas a moins que ce soit le php qui le genere dans ce cas tu utilises la même variable pour l'autre cadre :)

++
 
WRInaute discret
(Je viens d'editer ma question car elle me senblait pas trés clair désolé)

merci pour votre réponse mais je pense que l'on peut le faire en php j'ai trouvé sur le site ComScripts le code suivant :
<?
$site = "http://www.phpeasy.net";
$file = @fopen($site, "r");
while (!feof($file)) {
$line = @fgets($file, 1024);
if (eregi("<title>(.*)</title>", $line, $out)) {
$title = $out[1];
break;
}
}
if(empty($titre)) $titre = $site;
@fclose($file);
?>

Je l'ais essayé mais ça ne marche pas et en plus etant trés novice en php je ne suis même pas sûr que ça correspond a ce que je veux (ça me parraît enorme comme code pour juste récupérer la balise Title) :roll:
Donc je suis toujours au même point
 
WRInaute passionné
Code:
<?php 
$title = "";
$fichier = LE FICHIER A ANALYSER;  
if ($fp = @fopen( $fichier, 'r' )) {

   $cont = "";
   
   // read the contents
   while( !feof( $fp ) ) {
       $buf = trim(fgets( $fp, 4096 )) ;
       $cont .= $buf;
   }

   // get tag contents
   @preg_match( "/<title>([a-z 0-9]*)<\/title>/si", $cont, $match );
   
   // tag contents
   $title = strip_tags(@$match[ 1 ]); 
} 

?>

Voilou ;)
 
WRInaute discret
Bonsoir

Désolé de ne pas vous avoir répondu plutôt :oops: mais beaucoup de boulot en ce moment. Déjà merci pour vos réponses.

J'ai essayé votre code mr_go mais il me fait une erreur que je ne comprend pas : Notice: Use of undefined constant Pub_Code_1_Art - assumed 'Pub_Code_1_Art'

Je vous remercie d'avance pour votre réponses et encore désolé
Bonne soirée :wink:
 
WRInaute passionné
A mon avis, c'est un problème externe à ce script

Code:
Notice: Use of undefined constant

Signifie que la variable Pub_Code_1_Art n'existe pas.
 
WRInaute accro
oui, c'est une notice, cela ne doit pas alterer ton script. tu peux meme cacher les notices (ce qui n est pas bien ^^) avec un error_reporting().
 
WRInaute passionné
Pas bien du tout, mais ca peut sauver des vies lorsqu'intervient une telle erreur lors d'une validation d'une commande (exemple non vécu)... =)
 
WRInaute discret
mr_go a dit:
Code:
<?php 
$title = "";
$fichier = LE FICHIER A ANALYSER;  
if ($fp = @fopen( $fichier, 'r' )) {

.....
[/quote]
Bonjour
On est bien d'accord qu'a la place de " LE FICHIER A ANALYSER " je marque le nom de mon fichier " Pub_Code_1_Art.php " par exemple ou est-ce que je me trompe ?

merci et bonne journée :wink:
 
WRInaute passionné
Si la balise title n'est pas générée dynamiquement (elle est présente "en dur", comme dans un fichier html, dans ton fichier Pub_Code_1_Art.php par exemple).

$fichier = LE FICHIER A ANALYSER;
devient
$fichier = "Pub_Code_1_Art.php";

et cela suffit (à condition qu'il n'y ait pas de balise <title> en commentaire.... ;) ).


Sinon, il faut regarder le code HTML généré par ton fichier php.

Si c'est le cas, il faut effectuer une action spéciale dans ton script.
 
WRInaute discret
Ah!!! c'est là que ça doit poser probléme car sur certaine pages j'ai des liens avec la balise title pour les commenter. Est-ce un probleme ?

Par contre, je crois que quand j'ai essayé le script je n'ais pas mis les guillemets :roll: c'est surement pour cela qu'il m'a fait l'erreur : Notice: Use of undefined constant Pub_Code_1_Art - assumed 'Pub_Code_1_Art'
 
WRInaute passionné
Ah!!! c'est là que ça doit poser probléme car sur certaine pages j'ai des liens avec la balise title pour les commenter. Est-ce un probleme ?

Clairement non puisque on parle de la balise <title> et non de l'attribut title. ;)

Code:
@preg_match( "/<title>...
 
WRInaute accro
>> je n'ais pas mis les guillemets Rolling Eyes c'est surement pour cela qu'il m'a fait l'erreur

oui, tu dois mettre le chemin complet du fichier entre guillemets
 
WRInaute discret
Bonjour,

personellement j'aurais simplifié tout cela car l'ouverture de fichiers prends déjà beaucoup de ressources et les expressions rationelles encore plus.

donc:
Code:
function get_file_title($file){
$cont = file_get_contents($file);
preg_match( "/<title>(.*)<\/title>/i", $cont, $match );
return strip_tags($match[0]); 
}

;)
 
WRInaute discret
J'ai bien mis le nom de mon fichier entre les guillemets je n'ais plus d'erreur mais rien ne s'affiche :?
mr_go a dit:
Code:
<?php 
$title = "";
$fichier = LE FICHIER A ANALYSER;  
if ($fp = @fopen( $fichier, 'r' )) {

   $cont = "";
   
   // read the contents
   while( !feof( $fp ) ) {
       $buf = trim(fgets( $fp, 4096 )) ;
       $cont .= $buf;
   }

   // get tag contents
   @preg_match( "/<title>([a-z 0-9]*)<\/title>/si", $cont, $match );
   
   // tag contents
   $title = strip_tags(@$match[ 1 ]); 
} 

?>

Voilou ;)

J'ai essayer le code de Xou mais là c'est pareil aucune erreur mais rien ne s'affiche

Xou a dit:
Code:
<?php 
function get_file_title($file){ 
$cont = file_get_contents($file); 
preg_match( "/<title>(.*)<\/title>/i", $cont, $match ); 
return strip_tags($match[0]); 
} 
?>

Alors là je ne comprend plus rien, c'est vraiment bizarre
merci d'avance
 
WRInaute discret
pense à faire un:
Code:
echo get_file_title("fichier.html");
pour ma fonction


et un:
Code:
echo $title;
pour le code de mr_go

;)
 
WRInaute discret
Xou a dit:
pense à faire un:
Code:
echo get_file_title("fichier.html");
pour ma fonction


et un:
Code:
echo $title;
pour le code de mr_go

;)

Bonsoir
Je suis vraiment désolé de vous poser cette question (je suis vraiment un boulet :roll: ) mais ou et comment on insere cette fonction echo.

Merci d'avance et bonne soirée
 
WRInaute discret
Et bien non je ne suis pas un boulet j'ai réussi avec le code de Xou

<?php
function get_file_title($file){
$cont = file_get_contents($file);
preg_match( "/<title>(.*)<\/title>/i", $cont, $match );
return strip_tags($match[0]);
}
echo get_file_title("Pub_Code_2_Art.php");
?>

Et maintenant ça marche !!!
Par contre avec le code de mr_go : echo $title; ça ne marche pas :?

PS : Par contre comment je fais pour mettre en gras ce qu'il affiche ?

Je vous remercie vraiment pour votre aide :D
Bonne soirée :wink:
 
WRInaute passionné
Tiens, bizarre, cea marche chez moi...

Pour le gras

$balise = get_file_title("Pub_Code_2_Art.php");
echo "<strong>".$balise."</strong>";

Voualou ;)
 
Discussions similaires
Haut