2011-04-12 3 views
1

Ok ... Je sais < - ne peut pas être exclu de strip_tags en utilisant des balises permises par exemple, mais j'essaie d'utiliser un travail autour. Le travail autour fonctionne correctement sur les jeux de caractères qui ne seraient pas HTML valide pour commencer, comme < < ou < ~ cependant quand j'utilise le code ci-dessous pour convertir le < - ou -> en chiffres avant que strip_tags soit traité et ensuite de retour des chiffres au < - et -> après. Mais chaque fois que ces symboles apparaissent tout le HTML à partir de là est supprimé, cela ou non traité. Je comprends que je ne peux pas le laisser seul grâce à des balises permises, c'est pourquoi je le convertis avant le strip_Tags et le retour après ... mais c'est presque comme si strip_Tags le supprime même s'il est reconverti après la ligne où strip_tags est < - et de prendre tout à droite de celui-ci .... Des idées ou d'autres façons d'essayer? J'ai également essayé de définir < - comme &lt;— et essayé de le remplacer par d'autres symboles, comme # - mais peu importe ce que j'ai le même résultat.Comment utiliser <- avec strip_tags? J'ai essayé de convertir les symboles avant et après sans succès

Je devrais également mentionner le < - et -> arent utilisés ensemble, ils sont utilisés pour pointer des choses dans le texte. Comme internt < - est mal orthographié là.

`<?php 
$data = file_get_contents("test.html"); 
$data = str_replace("<-", "999", $data); 
$data = str_replace("->", "998", $data); 
$data = strip_tags($data, ''); 
$data = str_replace("999", "<-", $data); 
$data = str_replace("998", "->", $data); 
echo $data; 
?>` 

je collecte des données d'échantillons et de réaliser si je retire une bonne partie de l'échantillon HTML tout fonctionne bien, se retourne si je bande commentaires HTML réels tels que <!-- Header //--> moi-même la conversion va bien, donc je vais y rechercher une correspondance regex pour supprimer les commentaires HTML avant la conversion et les striptags.

Mise à jour

J'ai utilisé le code suivant ci-dessous pour supprimer les commentaires HTML première, qui se traduit par le succès. Merci de votre aide.

`$data = preg_replace('/<!--(.*)-->/', '', $data);` 
+0

Vous avez d'autres problèmes si vous convertissez quelque chose d'autre, puis revenez, et il est encore dépouillé. C'est à peu près pas possible. poster du code. – profitphp

+0

Pourquoi ne modifiez-vous pas votre question et mettez-la dedans afin qu'elle soit lisible. Et il serait utile d'inclure au moins un petit échantillon de vos données d'entrée, y compris les étiquettes en question. – profitphp

+0

Est-il possible de changer la source pour utiliser les entités appropriées? – drudge

Répondre

2

Mise à jour:

$string = "<div>words words wrods <- words words</div>"; 
$string = str_replace('<-', '&lt;-', $string); 
echo strip_tags($string); 

sortie (Source):

words words wrods &lt;- words words 

sortie (HTML):

words words wrods <- words words 
+0

Désolé je devrais expliquer, les <- ne sont pas réellement utilisés comme une balise ils sont utilisés au milieu du texte comme un pointeur. Comme internt <- ce mot est mal orthographié. Quelle est la raison pour laquelle je suppose que tout de <- on est dépouillé depuis son considéré une grande étiquette, mais ce qui n'a pas de sens est au moment où le strip_Tags est traité <- est encore converti en 999 ... –

+0

@Ryan: I ' J'ai mis à jour ma réponse, voir si cela fonctionne pour vous. Si non, pourriez-vous s'il vous plaît poster un code plus spécifique qui montre votre problème? – drudge

Questions connexes