Pb saut de ligne et espace dans balise Meta

Papillon007
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 25 Oct 2007

Pb saut de ligne et espace dans balise Meta

Message le Jeu Oct 25, 2007 10:11

Bonjour à tous,

Voila, aprés plusieurs heures, je ne suis pas arrivé à résoudre ce problème qui peut paraitre assez simple pour certain :(.

J'ai une base de données ou je récupère à l'aide d'une variable le texte d'une actualité que j'utilise dans une balise Meta avec la prise en compte des 256 premiers caractères.

Code: Tout sélectionner
<meta name="dc.description" content="<?php echo CorrectDesc($Contenu_News); ?>" />


Ma fonction CorrectDesc est présente car le texte récupéré contient des balises HTML de tous les types et elle prend en charge que les 256 caractères.

Ce que je ne comprend pas, ce que lorsque je regarde en mode code ma feuille, des sauts de ligne et des espaces sont présent dans le texte de la balise dc.description :(

Par exemple voici un texte issu de la base :

Code: Tout sélectionner
<p align="justify">le forum de Webrankinfo.com est vraiment trés bien et agréable </p>
                          <p align="justify"><img src="../Mes_News/Ma_Photo_1.jpg" width="214" height="193" hspace="5" align="left" />De trés nombreux fils de discussions sont présent et énormément d'information sont disponibles</p>
                          <p align="justify"><img src="../Mes_News/Ma_Photo_1.jpg" width="214" height="193" hspace="5" align="left" />Avec un design sympathique,  le forum est intuitif, rapide et bien organisé. De trés nombreux thèmes sont abordés et l'ambiance est trés conviviale </p>


Le saut de ligne entre les balises
Code: Tout sélectionner
<p></p><p></p>

ainsi que les blancs sont présents dans la base d'ou le problème.

En utilisant (desolé si la prog est un peu limite) la fonction suivante je n'arrive pas à supprimer saut de ligne et blanc :

Code: Tout sélectionner
function CorrectDesc($Desc)
{
$nb = 247;

        $Desc= substr($Desc, 0,500);
        $position_p = strrpos($Desc,"</p>");
      $texte= substr($Desc, 0, $position_p);
        $texte1 = substr($Desc, $position_p, 500);
      $Desc1= trim($texte). trim($texte1);
      $Desc1= strip_tags($Desc1);
       
      if (strlen($Desc) > $nb)
    {
   $position_espace = strrpos($Desc1," ");
    $texte = substr($Desc1, 0, $position_espace);
    $Desc= $texte."...";
    }
    return $Desc;
}


Voici le résultat dans la balise méta dc description :

Code: Tout sélectionner
"Le forum de Webrankinfo.com est vraiment trés bien et agréable
                         ..."


Si quelqu'un peut m'aider car la je ne comprend plus rien. Le pire est que si dans ma feuille HTML j'appelle ma fonction, le texte est bien sur une ligne !

Merci d'avance à tous

webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Jeu Oct 25, 2007 10:59

en faisant ca :
Code: Tout sélectionner
str_replace('  ', ' ', strip_tags($Desc));

Papillon007
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 25 Oct 2007

Message le Jeu Oct 25, 2007 13:47

je vais essayer !

Zut marche pas !

je ne sais pas pourquoi, mais meme en utilisant :

Code: Tout sélectionner

trim($texte)


il conserve les espaces est interprète un saut de ligne lorsque des balises paragraphe sont présentes.

Code: Tout sélectionner
<p>Il fait super beau.</p>
          <p>Il fait super beau</p>


devient dans la balise Meta avec le fonction strip_tags($Texte1)

Code: Tout sélectionner
Il fait super beau.
           Il fait beau.


Mais dans la page elle même, si je fais :

Code: Tout sélectionner
<?php echo $Texte1 ?>


J'ai bien : Il fait super beau. Il fait beau.

webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Jeu Oct 25, 2007 17:03

en effet, en html le seul moyen pour avoir plusieurs espaces à la suite c'est avec &nbsp;

Papillon007
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 25 Oct 2007

Message le Jeu Oct 25, 2007 17:14

je vais essayer avec ça :

str_replace(' &nbsp ', ' ', strip_tags($Desc));


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités