Bonjour, j'ai un petit problème (pour ne pas changer)

Je récupère des infos d'une BDD via des requêtes SQL, mais lorsque j'affiche le paragraphe que je veut, il s'affiche une ligne en dessous de sa place initiale

En fait, le problème c'est que les infos sont enregistrés avec des balises HTML qui doivent absolument rester.

Seulement, il y as aussi un retour à la ligne et un espace via la touche TAB et je ne sais pas comment les retirer...

J'ai essayé un str_replace(" ", "", $paragraphe) mais ça ne fonctionne pas ...

Voici un exemple de l'infos que je sors :
"<p>
Voir fiche ci-jointe&nbsp;&nbsp;&nbsp;</p>"


En gros je cherche à savoir comment retirer ce qu'il y as entre le premier <p> et le texte, de préférence en PHP

Cordialement, Merci d'avance
Modifié par OnePunch (03 Nov 2017 - 09:46)

$programme = $donnees['programme'];
        $programme = str_replace(array("\r", "\n"),'', $programme);
        $programme = nl2br($programme);
Ok, ton code fonctionne également pour moi.
$programme = "<p>
Voir fiche ci-jointe&nbsp;&nbsp;&nbsp;</p>";
echo $programme;

$programme = str_replace(array("\r", "\n"),'', $programme);
$programme = nl2br($programme);
echo $programme;

en sortie j'ai bien en premier ta chaine avec le retour à la ligne, et directement à la suite la même chaine sans le retour à la ligne.
<p>
Voir fiche ci-jointe&nbsp;&nbsp;&nbsp;</p><p>Voir fiche ci-jointe&nbsp;&nbsp;&nbsp;</p>
C'est bizarre .... j'ai le retour à la ligne moi ... par contre j'ai plus l'espace fais avec la touche TAB

Je l'affiche comme ça :

<div class="texte_public">&#8594; <?php echo $programme; ?><a href="#"><img class="pdf" src="images/pdf.jpg"></a></div>


Le CSS :

.texte_public
{
    font-style: italic;
    color: RGB(2,78,0);
}

.pdf
{
    width: 20px;
    height: auto;
    margin-left: 5px;
}

Modifié par OnePunch (03 Nov 2017 - 10:17)
Je pense avoir trouvé le problème, en faites quand je met pas le caractère "&#8594;" qui est une flèche, le paragraphe à l'air de s'afficher parfaitement bien ...
Bon, JENCAL si tu trouves quelque chose je suis preneur, ça fait 2heures que je suis dessus et je sais pas comment faire

Ducoup mon client à crier mais il y aura pas de fleches ici en attendant de trouver la solution ^^
Non, mais y'a un truc que t'a pas saisie (j'ai mis du temps à capté aussi.. le vendredi je suis au ralenti) au niveau de la balise <p> HTML

En php, la fonction que je t'ai filé tout a l'heure permet de supprimer les retour chariot (les vrais!)

Par contre en HTML une balise <p> est lu comme un nouveau paragraphe, et donc ça va à la ligne.
Modifié par JENCAL (03 Nov 2017 - 11:15)
Après je connais pas assez ton contexte pour t'aider sur ce point. Tu as la solution à toi de trouver comment l'appliquer maintenant.
peut être que les selectors peuvent t'aider. Si jamais les <p> qui ne doivent pas avoir de saut de lignes sont dans une div particulière tu peux sélectionner la div en css puis descendre jusqu'au <p> en question.
Il faut que j'arrive à le sélectionner sur la fiche CSS mais j'aime tellement pas le CSS que je sais plus faire ça xD
c'est pas quelque chose comme :
.texte_public  p{}
???

<div class="texte_public"><?php echo $donnees['programme'].$imgpdf; ?></div>

Modifié par OnePunch (03 Nov 2017 - 13:56)
peut être devrais tu être plus précis :

.texte_public > p{} Select tous les <p> elements quand son parent est texte_public

.texte_public+p{} Select tous les<p> elements qui sont directement après texte_public
Meilleure solution
Mais je viens de penser , je l'ai dans l'os, car dans certaines données de la BDD ils y as plusieurs <p> qui doivent absolument faire leurs boulots ... Bon c'est pas grave je vais laisser de côté et continuer le développement du site Smiley smile

Merci en tout cas pour avoir pris du temps pour moi ! Bonne journée JENCAL