如何以及在何处使用 htmlspecialchars() 或 {{}}?

How and where exactly is htmlspecialchars() or {{}} to be used?

什么时候使用 htmlspecialchars()?

我知道 laravel {{}} 会自动转义,但我有一个情况我不知道如何实现 {{}} - 请参阅 "view" 示例,所以我会改为 htmlspecialchars() 。据我所知,每次我输出以前存储在数据库中的信息时都应该使用它,但就我而言,我也有图片,这些图片存储在服务器上的一个文件夹中。一旦用户尝试上传图片,他就会收到带有 successfully/unsuccessfully 上传图片名称的错误消息(红色 <div>)。那需要转义吗?我不知道是否应该转义视图信息。为了让错误消息仍然保持红色,我决定在控制器中使用 htmlspecialchars(),我认为这是非常错误的?

控制器

                        if (......)
                            {
                            $msgs[] = '<div style="color:red">Could not upload: ' . htmlspecialchars($_FILES['image']['name'][$key]) . ' - picture size should be less than 10MB, in the following formats: jpg, jpeg, gif, png, bmp.</div>';
                            }
                        else
                            {
                            $fileToMove = $_FILES["image"]["tmp_name"][$key];
                            $newFileLoc = 'images' . DIRECTORY_SEPARATOR . time() . $_FILES['image']['name'][$key];
                            move_uploaded_file($fileToMove, $newFileLoc);
                            $msgs[] = '<div>Picture ' . htmlspecialchars($_FILES['image']['name'][$key]) . ' has been successfully uploaded to the gallery!</div>';
                            }
                        }

在内部,当您在 blade 语法中使用 {{ }} 时,我相信它会调用 e() 方法。所以你应该使用 e($someString).

而不是 htmlspecialchars($someString)

在将用户之前提交给系统的数据放到页面上时,您应该随时使用它。