Filtre des chaines des balises html PHP

Messages postés
14
Date d'inscription
mercredi 10 octobre 2018
Dernière intervention
28 octobre 2018
-
Bonjour,
j'ai un textarea dans lequel je saisi du texte dans une image, avec la fonction Imagestring(), mais avec du texte entre des balises du type ou , pour mettre sur l'image du texte en gras, souligné, en couleur ....
le problème est que le texte s'affiche avec les balises html.
je veux trouver un filtre qui enlève les balises en gardant le style du texte (couleur, format,..)
j'ai trouvé ce filtre
 filter_var($string, FILTER_SANITIZE_STRING);
et j'ai l'essayé. il a bien enlevé les balises mais le texte n'est pas en sa bonne format ni style ...
j'ai trouvé aussi ce filtre
filter_input(INPUT_GET, 'texte' , FILTER_SANITIZE_STRING)
mais je n'ai pas compris comment l'utiliser ?
merci de me donner l'aide soit de la manière de l'utilisation de ce filtre ou s'il y a autre filtre qui répond à mon besoin et qui peut résoudre mon problème
merci pour votre compréhension !
Afficher la suite 

Votre réponse

1 réponse

Messages postés
23588
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2018
0
Merci
Bonjour,
Le souci ne se situe pas au niveau du "filtre".
Ce qui permet d'avoir du style sur du text... c'est justement les balises HTML.
Ton souci est donc de trouver comment écrire du text en gras, couleur... sur une image.

jordane45
Messages postés
23588
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2018
-
Pour écrire avec de la mise en forme :
http://php.net/manual/fr/function.imagettftext.php
j'ai bien compris ce que vous m'avez dit mais moi je veux utiliser les couleurs de manière dynamique c-à-d je veux changer les couleurs. je veux pas que la couleur soit définit et constante comme ce qui est utilisé par les fonctions de manipulation des images par le bibliothèque GD " imagestring ou imagettftext..."

j'ai utilisé une fonction javascript pour changer la couleur du texte mais j'ai eu toujours la couleur noir par défaut.
merci de m'orienter vers la bonne solution si vous permettez.



{% extends '::layoutv.html.twig' %}

{% block stylesheets %}
{% endblock %}

{% block titre %}
{% endblock %}

{% block body %}

    {#{{ tinymce_init({'use_callback_tinymce_init': true, 'theme': {'simple': {'menubar': false}}}) }}#}
    <div>
        <h1>
            Insertion des projets
        </h1>
    </div>
    <!-- BEGIN DISPLAY THE FLASH MESSAGES -->
    {% for flashMessage in app.session.flashbag.get('error') %}
        <div class="alert alert-error">
            <button class="close" data-dismiss="alert"></button>
            <strong><i class='icon-remove'></i> </strong> {{ flashMessage }}
        </div>
    {% endfor %}
    <!--  END DISPLAY THE FLASH MESSAGES -->

    <div class="row-fluid">
        <div class="span6">

            <div class="portlet-body form">
                <!-- BEGIN FORM-->
                <form id="formProject" class="form-horizontal" action="{{ path('new_project') }}" enctype="multipart/form-data" method="post">
                    <div class="control-group">
                        <label class="control-label">Télécharger une image</label>
                        <div class="controls">
                            <input type="file" name="image">
                            <input name="positionx" id="positionx"  value="">
                            <input name="positiony" id="positiony"  value="">
                            <input id="colortext" value="" name="couleur" />
                            {#<input id="coltext" name="color" value="" onchange="changeBackground(this);" />#}
                            {#<label class="control-label">Texte</label>#}
                            </br>
                            {#<input type="hidden" class="tinymce" type="text"  onClick="showWord()">#}
                            {#<textarea class="tinymce" name="caption"></textarea>#}
                            <div class="row">
                                <div class="col-sm-8" id="textarea">
                                    {{ form_row(formProject.texte|raw) }}
                                </div>
                            </div>

                        </div>
                        </br>
                    </div>
                    <div class="controls margin-bottom-30">
                        <button type="submit" name="submit" class="btn green" id="btnSubmit">Valider</button>
                        <button type="reset" class="btn yellow">Annuler</button>
                    </div>
                    {{ form_rest(formProject) }}
                </form>
                <!-- END FORM-->
            </div>

        </div>

    </div>

{% endblock %}


{% block javascripts %}
    <script type="text/javascript"
    src="{{ asset('bundles/formationminip/plugins/tinymce/tinymce.min.js') }}"></script>
    <script type="text/javascript"
    src="{{ asset('bundles/formationminip/plugins/jquery-ui/jquery-ui.min.js') }}"></script>
    <script type="text/javascript" src="{{ asset('bundles/formationminip/js/text.js') }}"></script>


    <script type="text/javascript">
        $(document).ready(function () {
            var colors = ['#3498db', '#e67e22', '#16a085', '#f39c12', '#2c3e50', '#7f8c8d', '#2980b9'];
            var i = 0;
            $('#textarea').click(function (e) {
//  choix du couleur
                var x = document.getElementById("formation_minipbundle_project_texte");
                console.log(x);
                x.style.color = colors[i++ % colors.length];
                coltex = x.style.color;
                console.log(coltex);
                $("#colortext").val(coltex);
// position du curseur
                var x = e.pageX;
                var y = e.pageY;
                //int of top position
                //remember u need absolute position to calculate parents,grandparents to find true
                // position from body tag to whereever textarea might be (html) wise
                var tx = parseInt($(this).css('left'));
                var ty = parseInt($(this).css('top'));
                var fx = x - tx; //final x
                var fy = y - ty; // final y
                $("#positionx").val(fx);
                $("#positiony").val(fy);

                console.log(fx);
                console.log(fy);
            });
        });
    </script>
  
    
{% endblock %}


Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.