Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Identificar tags não fechadas


vini_loock

Question

Salve pessoas,

Estou precisando de alguma coisa que identifique tags não fechadas.

A situação é a seguinte:

Tenho um formulário para adicionar artigos;

Nesse formulário há um campo "conteudo"(um textarea tiny mce);

Este campo, poderá receber o famoso "leia mais", que nada mais é que um comentário html no campo conteúdo;

No banco de dados, existem 2 campos para salvar o conteudo: introtext e fulltext;

Na hora de salvar, dou um explode no comentário (<!--readmore-->);

e salvo as partes em seus devidos lugares;

O problema é que se por exemplo o comentário estiver dentro de uma tag p, quando eu mostrar no site apenas o introtext, terá um p sem fechamento.

Este é o problema, estou sem nenhuma ideia por enquanto, se alguém tiver sugestões...

Vlw, Vinicius

Edit..

Só afim de exemplificar:

Supomos que o conteudo que o usuário digitou no campo corresponda a isto:

<p>primeira parte do texto</p>
<p><!--readmore--></p>
<p>segunda parte do texto</p>
No banco, será salvo assim: introtext
<p>primeira parte do texto</p>
<p>
fulltext
</p>
<p>segunda parte do texto</p>

Edited by vini_loock
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

E ae Vini, Bom dia :)

Cara, acho que isso vai te ajudar ^^ Se tiver alguma dúvida, posta aqui.

<?php
     //Você possui isso
     $conteudo = "<p>primeira parte do texto</p>"
               ."<p><!--readmore--></p>"
               ."<p>segunda parte do texto</p>";
     
     //Quando vai salvar no banco, faz isso
     $conteudo = explode("<!--readmore-->",$conteudo);
     $introtext = $conteudo[0];
     $fulltext = $conteudo[1];
   
     //Correto ? Agora, você pode criar uma condição para verificar se existe uma tag p não fechada.
     if(preg_match("/\<[pP]\>$/",$introtext)){
         $introtext = substr($introtext,0,-3);
     }
     if(preg_match("/^\<\/[pP]\>/",$fulltext)){
         $fulltext = substr($fulltext,4);
     }
     
     echo $introtext." e ".$fulltext;
     ?>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...