换行符在我的php程序中不起作用?

时间:2019-04-16 01:11:39

标签: php html

当我在php程序中将字符串写入文本文件“ words.txt”时,换行符(\n<br>)不起作用,并且从文件中读取的所有内容都会出现在一行上。

我尝试使用<br />/n\n<br>。我尝试将它们放在不同的位置(我在哪里写文件,在哪里我看文件)。

<!DOCTYPE html>
<html>
    <head>
        <title>Glossary</title>
    </head>

    <body>
        <form action="index.php" method="post">
            <input type="text" name="word">
            <input type="submit" value="submit">
        </form>
    </body> 
</html>
<?php
    $word = $_POST['word'];
    $outPutString = $word.'<br>'; 

    $fp = fopen('words.txt', ab);
    flock($fp, LOCK_EX);
    fwrite($fp, htmlspecialchars($outPutString), strlen(outPutString));
    flock($fp, LOCK_UN);
    fclose($fp);    
?>
<?php

    $fo = fopen('words.txt', rb);
    flock($fo, LOCK_SH);
    while(!feof($fo)) {
        $words = fgets($fo);
        if(!feof(fo)){
            echo htmlspecialchars($words)."<br />";
        }
    }
    flock($fo, LOCK_UN);
    fclose($fo);
?>

1 个答案:

答案 0 :(得分:4)

您要保存到文本文件,因此它无法呈现HTML或JavaScript。如果要查看换行符,请尝试使用“ html”进行保存。

<?php
    $word = $_POST['word'];
    $outPutString = $word.'<br>'; 

    $fp = fopen('words.**html**', ab);
    flock($fp, LOCK_EX);
    fwrite($fp, htmlspecialchars($outPutString), strlen(outPutString));
    flock($fp, LOCK_UN);
    fclose($fp);    
?>
<?php

    $fo = fopen('words.**html**', rb);
    flock($fo, LOCK_SH);
    while(!feof($fo)) {
        $words = fgets($fo);
        if(!feof(fo)){
            echo htmlspecialchars($words)."<br />";
        }
    }
    flock($fo, LOCK_UN);
    fclose($fo);

?>