OVH Cloud OVH Cloud

Pb avec ECHO

2 réponses
Avatar
Christian HUBERT-HUGOUD- Xtrem7
Bonjour à tous,

Je me sers d'un php pour bâtir à la volée une page HTML. Pour cela, le php
lit un fichier txt qui contient le code HTML ; il echo ce code HTML.

Cela fonctionne très bien, sauf que :

dans le code j'ai une variable qui contient un texte destiné à être envoyé
dans un mail. Pour la mise en page, j'ai besoin de faire des retours ligne
(\n) dans ce texte. Depuis le html directement, cela fonctionne parfaitement
bien.

Mais avec le système php qui echo le code html, ces \n sont interprétés et
flanquent des retours ligne dans le code html lui-même. Résultat : erreur
html.

Peut-on faire en sorte que le echo (ou une autre fonction) inscrive les
données sans les interpréter ? (style écrire dans un fichier). J'ai essayé
avec print : c'est pareil.

Voici le code :

<?php

$FileName ="../z_fr_per_header.txt";
$CurFile = fopen( $FileName, "r");
$FileText = fread ( $CurFile, filesize ($FileName));
$FileText = str_replace ( "Param1", "Votre Questionnaire Individuel
Xtrem7", $FileText);
$FileText = str_replace ( "Param2", "Bonjour, etc et il y a ici des \n\n
et cela plante le html", $FileText);
echo ( $FileText);
fclose ( $CurFile);

?>

Merci d'avance

Christian

2 réponses

Avatar
Frederic BISSON
Peut-on faire en sorte que le echo (ou une autre fonction) inscrive les
données sans les interpréter ? (style écrire dans un fichier). J'ai essayé
avec print : c'est pareil.
echo n'interprête pas les données.


$FileText = str_replace ( "Param2", "Bonjour, etc et il y a ici des nn
et cela plante le html", $FileText);
Si tu tapes 'Bonjour, etc et il y a ici des nn' (avec des simples

quotes), l'anti-slash et le n ne seront pas interprétés comme un retour
chariot mais comme deux caractères distincts.

echo ( $FileText);
echo ne nécessite pas les parenthèses, ce n'est pas une fonction ou une

procédure.

@+

Frédéric

Avatar
Christian HUBERT-HUGOUD- Xtrem7
Merci

"Frederic BISSON" a écrit dans le message de
news:
Peut-on faire en sorte que le echo (ou une autre fonction) inscrive les
données sans les interpréter ? (style écrire dans un fichier). J'ai
essayé


avec print : c'est pareil.
echo n'interprête pas les données.


$FileText = str_replace ( "Param2", "Bonjour, etc et il y a ici des
nn


et cela plante le html", $FileText);
Si tu tapes 'Bonjour, etc et il y a ici des nn' (avec des simples

quotes), l'anti-slash et le n ne seront pas interprétés comme un retour
chariot mais comme deux caractères distincts.

echo ( $FileText);
echo ne nécessite pas les parenthèses, ce n'est pas une fonction ou une

procédure.

@+

Frédéric