Filtre des chaines des balises html PHP

nejeh.dellai Messages postés 12 Date d'inscription mercredi 10 octobre 2018 Statut Membre Dernière intervention 28 octobre 2018 - Modifié le 12 oct. 2018 à 18:06
 dellai.najeh - 12 oct. 2018 à 22:35
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 !

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
12 oct. 2018 à 18:51
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.

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
12 oct. 2018 à 18:54
Pour écrire avec de la mise en forme :
http://php.net/manual/fr/function.imagettftext.php
0
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 %}


0
Rejoignez-nous