Page 1 sur 1

Besoin d'aide formatage texte !

Posté : 11 mai 2005, 00:53
par Cokin
Voilà je suis en train de me prendre la tête la dessus depuis quelque temps et je vous en fais part :

Code : Tout sélectionner

<? echo"<META NAME=\"Description\" content=\"<?php outputDescription(); ?>\">\n"; ?>
Bien évidemment le code ne fonctionne car il indique comme description de la page ce qu'il y a dans content au lieu de faire appel à la fonction qui est dans la page...
Je suis sûrement pas clair mais c'est que je me prends la tête sur ce truc tout bête... rhalalala
merci d'avance

Re: Besoin d'aide formatage texte !

Posté : 11 mai 2005, 00:58
par albat
Normal que cela ne marche pas : tu ouvres 2 fois la balise <?php ! [-X
<?php
echo "<meta name='Description' content='".outputDescription()."'>\n";
?>

Re: Besoin d'aide formatage texte !

Posté : 11 mai 2005, 01:00
par albat
autre écriture possible :
<meta name='Description' content='<?php echo outputDescription() ?>' >

Posté : 11 mai 2005, 01:07
par Invité
Merci de tes réponses rapides mais le problème c'est que je suis obligé de réécrire le code ainsi :

Code : Tout sélectionner

echo"<META NAME=\"Description\" content=\"".outputDescription()."\">\n";
Car sinon il ne l'interprète pas comme il faut... et de cette façon bien évidemment cela ne fonctionne pas... ta façon fonctionne mais comme je suis obligé de passer par echo"... eh bin ça marche pû !!!

Posté : 11 mai 2005, 02:18
par albat
le problème c'est que je suis obligé de réécrire le code ainsi :

Code : Tout sélectionner

echo"<META NAME="Description" content="".outputDescription()."">\n";
Ah bon ? Et pourquoi donc ? :shock:
Car sinon il ne l'interprète pas comme il faut... et de cette façon bien évidemment cela ne fonctionne pas...
D'où l'intérêt...
ta façon fonctionne mais comme je suis obligé de passer par echo"...
Ça veut dire quoi, "passer par echo" ?
Ce n'est pas ce que je fais ??? :?:

Tu es sûr que le problème ne vient pas de ta fonction outputDescription ?
Tu peux me la montrer ?

Posté : 11 mai 2005, 03:07
par Invité
Voici la fonction que je dois appeler :
<?php
function outputDescription()
{
$html = file_get_contents($_SERVER['SCRIPT_FILENAME']);

$startMatch = 'id="myDiv">';
$endMatch = '</div>';

$startOff = strpos($html, $startMatch) + strlen($startMatch);
$endOff = strpos($html, $endMatch, $startOff);

$html = substr($html, $startOff, $endOff - $startOff);

echo strip_tags($html);
}
?> 
Mais c'est vraiment étrange parce que normalement je reste pas bloqué comme ça... peut être parce qu'il est tard ! Encore merci de répondre à mes question

Posté : 11 mai 2005, 09:29
par albat
Encore merci de répondre à mes question
Y a pas de mal ! ;)

Ta fonction m'a l'air tout à fait correcte. Syntaxiquement, en tout cas.
Ce que je ne comprends toujours pas, c'est ce que tu as voulu dire par "je suis obligé de passer par echo". :?:

Regarde bien mes 2 propositions, elles sont rigoureusement identiques à la tienne.
J'en ai simplement nettoyé le code.

Posté : 11 mai 2005, 12:02
par Invité
Donc en fait ce qui se passe (ça va mieux avec un peu de repos) c'est que j'ai mes balises méta dans un fichier à par méta.php qui se présente comme ceci (il est appelé sur toutes les pages, mais il appelle normalement la même description pour chaque page ce qui me vaut un beau duplicate content par google !) :
<?
$metadescription = " ma description";
$metakeywords = "mes mots cles";
echo "<meta name=\"Description\" content=\"".$metadescription."\">\n";
echo "<META NAME=\"Keywords\" content=\"".$metakeywords."\">\n";
?>
La fonction outputDescription je souhaite l'inscrire ici... Ensuite la fonction en elle-même est appelée après la balise </html> c'est-à-dire après l'include de ma page bpage.php, logique...
Et après j'insère la balise <div id="myDiv">Ma description</div> sur chaque page pour avoir une description différente...
En théorique, c'est super mais en pratique je n'arrive pas à insérer la fonction dans le fichier des métas et je ne peux même pas l'inclure à par dans hpage.php par exemple afin de l'appeler au même moment que les autres (avec ta façon... donc le code "propre" !)...
J'y comprends plus rien...

Posté : 11 mai 2005, 13:14
par rami
Voici la fonction que je dois appeler :
<?php
function outputDescription()
{
$html = file_get_contents($_SERVER['SCRIPT_FILENAME']);

$startMatch = 'id="myDiv">';
$endMatch = '</div>';

$startOff = strpos($html, $startMatch) + strlen($startMatch);
$endOff = strpos($html, $endMatch, $startOff);

$html = substr($html, $startOff, $endOff - $startOff);

echo strip_tags($html);
}
?> 
Mais c'est vraiment étrange parce que normalement je reste pas bloqué comme ça... peut être parce qu'il est tard ! Encore merci de répondre à mes question
Ta fonction outputDescription() fait un echo. En suite qd tu l'appelles, tu fais un echo outputDescription(), donc un "double echo". Soit tu changes la fin de ta fonction par return strip_tags($html) au lieu de echo strip_tags($html). Ensuite tu peux faire :
<meta name='Description' content='<?php echo outputDescription() ?>' >
.

Soit tu ne veux pas changer ta fonction, et tu fais:
<meta name='Description' content='<?php  outputDescription() ?>' >
;)

Posté : 11 mai 2005, 14:10
par Invité
Non ça ne fonctionne toujours et je ne vois réellement pas comment ça pourrait fonctionner... quand je regarde ma source, il me met en meta description

Code : Tout sélectionner

<?php echo outputDescription() ?>
Je ne sais pas si je dis des conneries mais je crois qu'il l'interprète en html au lieu de le prendre pour ce qu'il est... bon je vais essayer de trouver autre chose car j'ai fait des choses beaucoup plus compliquées et c'est toujours pareil le truc le plus simple, faut que je bloque dessus...
Encore merci de votre aide...