哪个函数替换htmlspecialchars()用于数组?

时间:2015-05-17 16:03:41

标签: php html mysql

问。)哪个函数替换htmlspecialchars()对于数组?

我正在开发一个小应用程序,用于向数据库添加表,通过html打印它们,并允许通过隐藏的表单按钮删除这些表。

我只收到?addjoke的错误。

  

错误位于HTML文件的第19行。我在上面和下面用注释标记标记了第19行。

     
    

我还在PHP代码块下面附加了PHP Controller以供参考。 $jokes数组位于“// *****显示DB ***** //。”

之下   

我刚刚更改了只选择一个表到两个表,我不得不将mysqli_fetch_array代码更改为仅调用joketext表(仅用于打印行)到joketext AND { {1}}(id用于删除id - 导致此问题出现的功能。)

所以这段代码:

joketext

迫使我改变:

while ($row = mysqli_fetch_array($result))
{
    $jokes[] = array('id' => $row['id'], 'text' => $row['joketext']); // Changed from just $row['joketext'] to now both tables.
}

<p><li><?php echo htmlspecialchars($joke, ENT_QUOTES, 'UTF-8'); ?> - 

我理解的其实是一个数组,因为如果没有它,没有其他方法可以调用它们吗?我是新手,所以我不明白为什么<p><li><?php echo htmlspecialchars($joke['text'], ENT_QUOTES, 'UTF-8'); ?> - 只能用于字符串...我错过了什么?

HTML文件

htmlspecialchars()

PHP控制器文件

<!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <title>List of Jokes</title>
             <link rel="stylesheet" type="text/css" href="css/style.css">
             <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Slabo+27px">
        </head>
        <body>
            <div id="mainContainer">
                <div id="contentContainer">

                    <div class="headerItem">Here are all the jokes in the database:</div>

                    <div id="addJoke">+ <a href="?addjoke">Add Joke</a></div>

                    <ol>
                        <?php foreach ($jokes as $joke): ?>
                            // ***** LINE***** 19 //
                            <form action="?deletejoke" method="post">
                            // ***** LINE***** 19 //
                                <p><li><?php echo htmlspecialchars($joke['text'], ENT_QUOTES, 'UTF-8'); ?> - 
                                <input type="hidden" name="id" value="<?php echo $joke['id']; ?>">
                                <input type="submit" value="Delete"></li></p>
                            </form>
                        <?php endforeach; ?>
                    </ol>

                </div>


                <div id="footer">
                    <p><a href="/php/day%207%20code/before/addjoke/">IDJB Home</a>  -  <a href="?addjoke">Add Joke to IDJB</a>  -  <a href="#">Sitemap</a></p>
                    <p>&copy; <?php echo date("Y") ?> Internet Joke Database</p>
                </div>

            </div>
        </body>
    </html>
  

我意识到我的一些代码是旧的或折旧的。我开始从一本较旧的书中学习,我想在完成更高级的OOP编程之前,我将完成旧版应用程序的上下文。

感谢您帮助我学习。

1 个答案:

答案 0 :(得分:0)

  

我是新手,所以我不明白为什么htmlspecialchars()只能用于字符串...我错过了什么?

你必须遍历数组并转义其中的字符串:

foreach($arr as &$v)
  $v = htmlspecialchars($v);

现在,您已将数组中的每个值转义为。