PHP 将 HTML 标签写入文件并显示

Posted

技术标签:

【中文标题】PHP 将 HTML 标签写入文件并显示【英文标题】:PHP Write HTML tags into file and display it 【发布时间】:2021-04-19 18:48:18 【问题描述】:

我想在 php 中创建一个简单的注释系统,我的问题是当用户键入“,并发布它,它应该显示为

我的 PHP 代码:

我想在 PHP 中创建一个简单的注释系统,我的问题是当用户键入“,并发布它,它应该显示为

我的 PHP 代码:

<form method="post" name="formc" id="formc" >
    <textarea name="txtmsg" id="txtmsg" cols="25" rows="5" placeholder="Write something!" required="required"></textarea>
    <br>
    <input type="submit" value="Submit" name="submit" /> 
<?php
if ( isset( $_POST[ 'submit' ] ) ) 
    $com  = $_POST[ "txtmsg" ];
    $file = fopen( "inrg.txt", "a" );
    fwrite( $file, "<em>Anonymous:</em>" );
    for ( $i = 0; $i <= strlen( $com ) - 1; $i++ ) 
        fwrite( $file, $com[ $i ] );
        if ( $i % 37 == 0 && $i != 0 ) fwrite( $file);
              
    fwrite( $file, "<br>" );
    fwrite( $file, "<em>Sent: ".date('Y F j, H:i:s')."</em>");
    fclose( $file );

    echo '<script type="text/javascript">window.location ="";</script>'; // Add here

?>
    <br>
</form>
<?php
if (file_exists("inrg.txt")) 
    $file = fopen( "inrg.txt", "r" );
    echo fread( $file, filesize( "inrg.txt" ) );
    fclose( $file );

?>

【问题讨论】:

你看过php.net/htmlspecialchars吗? 那你为什么一次写 1 个字节的文件? @CarlosM.Hernández 谢谢,它很有用,但有什么办法甚至可以检查用户在 textarea 中输入的内容,以及它是否包含 '>' 或 ' 你可以做一个替换,你应该在对 POST 数据做任何事情之前验证所有用户输入,所以在使用 $_POST['txtMsg'] 之前,检查特殊字符并替换它们。跨度> 【参考方案1】:

我想知道为什么你一次写一个字节的文件,一定有一些非常狡猾的示例代码在某个地方。 如果您使用htmlspecialchars(),它会将特殊字符转换为 HTML 实体

if ( isset( $_POST[ 'submit' ] ) ) 
    
    $file = fopen( "inrg.txt", "a" );
    fwrite( $file, "<em>Anonymous:</em>" );
    fwrite( $file, htmlspecialchars( $_POST['txtmsg'] ));
    fwrite( $file, "<br>" );
    fwrite( $file, "<em>Sent: ".date('Y F j, H:i:s')."</em>");
    fclose( $file );

文件中的结果

<em>Anonymous:</em>include &lt;stdio.h&gt;<br><em>Sent: 2021 January 14, 18:01:54</em>

PHP手册htmlspecialchars() 如果你需要它 PHP手册htmlspecialchars_decode()

【讨论】:

【参考方案2】:

请研究 htmlspecialchars 的用法。 htmlspecialchars() 函数将一些预定义的字符转换为 HTML 实体。

注意:要将特殊的 HTML 实体转换回字符,请使用 htmlspecialchars_decode() 函数。

【讨论】:

以上是关于PHP 将 HTML 标签写入文件并显示的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据写入后显示NULL

使用 PHP 生成 SVG 文件

在PHP中,如何实现写入或创建另1个PHP文件?

php中如何将日志和标签一起写入MYSQL数据库~~~~

PHP如何把数据写入JSON文件并在另一PHP文件读取JSON数据?

PHP读取XML并写入数据库