8795 sujets

Développement web côté serveur, CMS

Bonjour

Quand on écrit un petit fichier texte sur un serveur via un formulaire et que ce fichier comporte des jeux de balises, celles-ci sont automatiquement passées à la ligne. On aura par exemple :
<h1>Titre</h1>
<p>Texte</p>
<h2>Soustitre</h2>
<p>Texte</p>

et pas :
<h1>Titre</h1><p>Texte</p><h2>Soustitre</h2><p>Texte</p>

Il ya donc insertion de \n, de \r ou peut-être même des deux selon les cas ???

La question c'est de vérifier par comparaison la conformité exacte entre ce qui est dans le fichier texte et la valeur d'une variable :
$compare = stripos($texte, $variable);

Si la valeur de $variable est strictement contenue dans $texte, "true" est renvoyé, sinon "false".

Tant qu'il s'agit de texte ascii pas de souci, mais dès qu'il y a des balises ça se complique. Exemple sur une liste :
Le contenu de la $variable
<li>Item de liste</li>
<li>Item de liste</li>

n'est pas retrouvé dans $texte alors qu'il est présent. J'ai supposé que ça tenait à une distinction subtile entre \n et \r... alors j'ai essayé tous les str_replace possibles, mais pas moyen de retourner "true".

Mais :
Bout de texte<br />
suite de texte

renvoie "true" sans problème.

C'est où que ça coince ?

<edit> reste la possibilité de tester les chaines en strip_tags, sans balisage....</edit>
Modifié par Arsene (06 Feb 2008 - 14:07)