PHP qui se mélange a mon HTML !!! beurk
-CCM-
Messages postés
927
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour tout le monde,
Voila le probleme assez particulier que je rencontre depuis peu...
J'ai un tableau html (ou plutôt un echo php qui appel a un tableau l'html ) ou j'affiche des variables issus de base de donnée grace aune requete....
echo
"<tr>\n
<td>
<span class=titre_cat>$titre</span>
<br><span class=texte>$intro ......</span><br>
</td>
<td>
<center><a href=/a.php?ma=$m&ar=$i target=_blank><font color=green>ouvrir</font></a></center>
<center><a href=\"#\" onClick=\"confirme($id)\" ><font color=red>supprimer</font></a><br></center>\n
</td>
</tr>";
Ces variables sont du style html exemple :
$intro vaut : "<span class=\"texte\"><span style=\"font-weight: bold;\">rr<span style=\"color: rgb(255, 0, 0);\">rr<font size=\"5\">rr<span style=\"text-decoration: "
et si ma variable $intro est un code html mal terminé (balise pas fermé par exemple, comme dans ce cas--> en gras), Et bein le reste de mon tableau devient disforme car a la lecture du code, le "compilateur php" crois que la balise fermante de ma variable se trouve en faite sur ma page...
Comment faire pour tronquer et limiter une variable non pas a un nombre limité de valeur mais a un nombre maxi et il faut que la balise html soit fermé.
--> dans mon cas $intro = 130 premiers caractères (code html compris) de $description
je voudrais soit $intro = 130 premier caractères de $description - hors code html uniquement la description - mais garder la mise en forme quand même à l'affichage..
ou $intro=130 premier caracteres maxi html compris mais a la condition que toutes les balises html soient fermés.
ou uine autre solution si vous en connaisez...
MErci a vous !
Voila le probleme assez particulier que je rencontre depuis peu...
J'ai un tableau html (ou plutôt un echo php qui appel a un tableau l'html ) ou j'affiche des variables issus de base de donnée grace aune requete....
echo
"<tr>\n
<td>
<span class=titre_cat>$titre</span>
<br><span class=texte>$intro ......</span><br>
</td>
<td>
<center><a href=/a.php?ma=$m&ar=$i target=_blank><font color=green>ouvrir</font></a></center>
<center><a href=\"#\" onClick=\"confirme($id)\" ><font color=red>supprimer</font></a><br></center>\n
</td>
</tr>";
---------tout vas bien ------------
Ces variables sont du style html exemple :
$intro vaut : "<span class=\"texte\"><span style=\"font-weight: bold;\">rr<span style=\"color: rgb(255, 0, 0);\">rr<font size=\"5\">rr<span style=\"text-decoration: "
et si ma variable $intro est un code html mal terminé (balise pas fermé par exemple, comme dans ce cas--> en gras), Et bein le reste de mon tableau devient disforme car a la lecture du code, le "compilateur php" crois que la balise fermante de ma variable se trouve en faite sur ma page...
--- une petite pause --- même moi j'ai du mal a suivre ce que je dis ----- reprenons ---
Comment faire pour tronquer et limiter une variable non pas a un nombre limité de valeur mais a un nombre maxi et il faut que la balise html soit fermé.
--> dans mon cas $intro = 130 premiers caractères (code html compris) de $description
je voudrais soit $intro = 130 premier caractères de $description - hors code html uniquement la description - mais garder la mise en forme quand même à l'affichage..
ou $intro=130 premier caracteres maxi html compris mais a la condition que toutes les balises html soient fermés.
ou uine autre solution si vous en connaisez...
MErci a vous !
A voir également:
- PHP qui se mélange a mon HTML !!! beurk
- Editeur html - Télécharger - HTML
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Espace html ✓ - Forum HTML
- [**] Balise pour un espace vide en hml. Merci ✓ - Forum Webmastering
7 réponses
Bonjour.
Je dirais qu'il faut passer par les expressions régulières :
1. Tu coupes à x caractères
2. Tu ne gardes que la partie au format "<balise>*</balise>".
Ceci-dit, j'ai du mal avec le contenu de tes variables...
En général, quand j'ai du texte à insérer, j'utilise :
Pour moi, le problème vient de la logique, pas du contenu de la variable.
Dans ton exemple, tu mets de trucs qui me semblent inutiles : si tu définis une classe pour ton span (span class="texte"), tu n'as pas besoin de mettre des styles. Il suffit de les définir dans le CSS.
Et essaye de ne garder que le contenu variable, dans ta variable. Evite au maximum les balises html.
Ou alors, tu as une bonne raison de claquer du contenu html dans ta variable ?
Je dirais qu'il faut passer par les expressions régulières :
1. Tu coupes à x caractères
2. Tu ne gardes que la partie au format "<balise>*</balise>".
Ceci-dit, j'ai du mal avec le contenu de tes variables...
En général, quand j'ai du texte à insérer, j'utilise :
// J'affiche le contenu html fixe echo "<p>"; // Ensuite, je récupère le contenu de la variable echo $mavariable; // J'affiche le html, bis echo "</p>";
Pour moi, le problème vient de la logique, pas du contenu de la variable.
Dans ton exemple, tu mets de trucs qui me semblent inutiles : si tu définis une classe pour ton span (span class="texte"), tu n'as pas besoin de mettre des styles. Il suffit de les définir dans le CSS.
Et essaye de ne garder que le contenu variable, dans ta variable. Evite au maximum les balises html.
Ou alors, tu as une bonne raison de claquer du contenu html dans ta variable ?
bein si tu veux, a la base c'est un champs texte area (remplit par un administrateur) puis envoyé dans ma BDD. ....
par defaut le texte est en span class_texte.
Tout baigne ... si l'admin saisi du texte et l'envoi, je n'aurais que du texte....
Sauf que si l'admin veux mettre en valeur disons les premières lignes, il trouve important de les mettre en rouge, le textarea contient une barre de mise en forme.
Cette mise en form insere en faite les balises necessaires a la mise en forme (couleur style taille ... )
La lors de la validation l'admin envoi dans la bdd le texte et sa mise en form (code html)
Et je ne peux pas utiliser ta methode (que j'utilise d'ailleur un peu partout ..) car la mise en forme peut varier d'un text a un autre...
Et la je suis bloqué ...
un coups c'est --> $var = texte texte texte texte texte
un coups c'est --> $var =<b> texte</b> hier j'ai manger une pomme <color=red>rouge </color> texte <p>texte
la fonction proposé plus bas ne me servira pas car le souci n'est pas de "la tranche de texte que je veux découpé" (0,130), mais que le fait de découpé mon intro prends un coups aucune balise , un coups une balise ouvrante et fermante, un coups une balise ouvrante uniquement
:s
Vous avez d'autres idées par hasard ??
par defaut le texte est en span class_texte.
Tout baigne ... si l'admin saisi du texte et l'envoi, je n'aurais que du texte....
Sauf que si l'admin veux mettre en valeur disons les premières lignes, il trouve important de les mettre en rouge, le textarea contient une barre de mise en forme.
Cette mise en form insere en faite les balises necessaires a la mise en forme (couleur style taille ... )
La lors de la validation l'admin envoi dans la bdd le texte et sa mise en form (code html)
Et je ne peux pas utiliser ta methode (que j'utilise d'ailleur un peu partout ..) car la mise en forme peut varier d'un text a un autre...
Et la je suis bloqué ...
un coups c'est --> $var = texte texte texte texte texte
un coups c'est --> $var =<b> texte</b> hier j'ai manger une pomme <color=red>rouge </color> texte <p>texte
la fonction proposé plus bas ne me servira pas car le souci n'est pas de "la tranche de texte que je veux découpé" (0,130), mais que le fait de découpé mon intro prends un coups aucune balise , un coups une balise ouvrante et fermante, un coups une balise ouvrante uniquement
:s
Vous avez d'autres idées par hasard ??
bonjour,
$intro = substr($description,0,130);
$intro contiendra les 130 premiers caratères de $description.
n.b. 0 et 130 peuvent être parametrés
$intro = substr($description,0,130);
$intro contiendra les 130 premiers caratères de $description.
n.b. 0 et 130 peuvent être parametrés
salut giheller,
$intro = substr($description,0,130);
$intro contiendra les 130 premiers caratères de $description.
n.b. 0 et 130 peuvent être parametrés
sa ne marchera pas car si un jour j'ai :
$intro vaut : "<span class=\"texte\"><span style=\"font-weight: bold;\">rr<span style=\"color: rgb(255, 0, 0);\">rr<font size=\"5\">rr<span style=\"text-decoration: "
un autre
$intro vaut : "rril était un petit navirrreur il etait un petit navirrrrrrreu il navais ja ja ja jamauis naviguéé il n'avaios ja ja ja jamais navogué ohéééé ohéééééééééééérr<font size=\"5\">rr<span style=\"text-decoration: "
la encore une fois il faudra re décalé le découpage :s ....
je pensais a un truc mais je ne sais pas si sa se fait :
lors de l'enregistrement de mes variables :
mon champs text area riche pour enregistrer mon texte et sa mise en forme avec balises .. normal quoi
et en même temps, un champs masqué qui me recopie uniquement les 130 premier caractères automatiquement sans mise en forme ... mais comment le faire ??
$intro = substr($description,0,130);
$intro contiendra les 130 premiers caratères de $description.
n.b. 0 et 130 peuvent être parametrés
sa ne marchera pas car si un jour j'ai :
$intro vaut : "<span class=\"texte\"><span style=\"font-weight: bold;\">rr<span style=\"color: rgb(255, 0, 0);\">rr<font size=\"5\">rr<span style=\"text-decoration: "
un autre
$intro vaut : "rril était un petit navirrreur il etait un petit navirrrrrrreu il navais ja ja ja jamauis naviguéé il n'avaios ja ja ja jamais navogué ohéééé ohéééééééééééérr<font size=\"5\">rr<span style=\"text-decoration: "
la encore une fois il faudra re décalé le découpage :s ....
je pensais a un truc mais je ne sais pas si sa se fait :
lors de l'enregistrement de mes variables :
mon champs text area riche pour enregistrer mon texte et sa mise en forme avec balises .. normal quoi
et en même temps, un champs masqué qui me recopie uniquement les 130 premier caractères automatiquement sans mise en forme ... mais comment le faire ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oui mais comment ??
La mise en forme est faite par un script javascript directement sur le champs lors de la saisi...
sa n'attend même pas l'envoi du formulaire ...
du coups il fau separer le texte de la MEF en temps réel et encore .... plus rapide que le javascript 8O
La mise en forme est faite par un script javascript directement sur le champs lors de la saisi...
sa n'attend même pas l'envoi du formulaire ...
du coups il fau separer le texte de la MEF en temps réel et encore .... plus rapide que le javascript 8O
peut être en utilisabt plusieurs variables sui serait ensuite concaténées.
la concaténation de variables vides n'aurait aucun impact
$intro1 = "<span class=\'texte\'><span style=\'font-weight: bold;\'>";
$intro2 = "..
$intro3 = "<span style=\'color: rgb(255, 0, 0);\'>
$intro 4 = rr
$intro5 = "<font size=\'5\'>";
echoi $intro1.$intro2.$intro3. ....
la concaténation de variables vides n'aurait aucun impact
$intro1 = "<span class=\'texte\'><span style=\'font-weight: bold;\'>";
$intro2 = "..
$intro3 = "<span style=\'color: rgb(255, 0, 0);\'>
$intro 4 = rr
$intro5 = "<font size=\'5\'>";
echoi $intro1.$intro2.$intro3. ....