0

CKeditor を使用してテキスト領域からテキスト ファイルにデータを保存および編集していますが、すべてがスムーズに機能しています。<br />update.php を介してテキスト ファイルを編集/更新しようとすると表示されない改行(" ") 以外のすべて。何が問題なのか本当にわかりません。タグを次々と置き換えようとしましたが、問題を解決できませんでした。

テキスト ファイルを読み書きするためのコード:

$text1 = "../conteudos/start/text1.txt";
if (isset($_POST['body1'])) {
    $newData = nl2br($_POST['body1']);
    $handle = fopen($text1, "w");
    fwrite($handle, $newData);
    fclose($handle);
}
// ------------------------------------------------
if (file_exists($text1)) {

    $myData1 = file_get_contents($text1);
    $myData1 = strip_tags($myData1);
}

テキストの内容を編集するためのコード:

<textarea class="ckeditor" name="body1" id="body1">
    <?php echo str_replace("<br />","",$myData1); ?>
</textarea>

前述のように、テキストは html タグがまったくない index.php にうまく表示されますが、上記のテキスト領域から編集しようとすると、まだタグが表示されませんが、すべてのテキストが 1 行に表示されます。「nl2br」関数を使用しているため、これは実際に機能するはずですが、明らかに何かがキャンセルされています。

私に何ができる?

4

3 に答える 3

0

ファイルからタグを削除しています ( $myData1 = strip_tags($myData1))。<br />はタグなので、あなたもそれを取り除いています!

str_replaceタグはすでに削除されているため、これは役に立たなくなります。nl2brいずれにせよ、改行文字はテキストファイル内で完全に有効であるため、そもそもそれは必要ありません...

于 2013-09-30T13:16:31.017 に答える
0

ユーザー Touch によると、彼の方法は彼のコンピューターで機能していたため、非常に奇妙なことが起こりました。残念ながら、それは私のものでは機能しませんでした!それで、しばらく考えた後、タグの置き換えのプロセスをやり過ぎたという結論に達しました。私のこの理論を確認するかどうかを確認するために、行ごとに消去して結果を確認することにより、「バックエンジニア」タッチの方法を実行することにしました。最後に、私の結論が正しいことがわかりました。次のコードのため、タグ置換のプロセスをやり過ぎていました。

$text2 = "../conteudos/start/text2.txt";
if (isset($_POST['body2'])) {
    $newData = nl2br($_POST['body2']);
    $handle = fopen($text2, "w");
    fwrite($handle, $newData);
    fclose($handle);
}
// ------------------------------------------------
if (file_exists($text2)) {

    $myData2 = file_get_contents($text2);
    $myData2 =  $myData2;
}

完璧に機能しました。これはKCEditorを使っていたからだとしか思えません...

答えてくれて、私に考えさせ、このように私の目標を達成するのを助けてくれたことに感謝します!

于 2013-09-30T14:21:17.220 に答える