如何使用PHP从输入框中删除引号

Bab*_*bak 4 php quotes replace user-input

我有这个:

<input name="title" type="text" class="inputMedium" value="' . $inputData['title'] . '" />
Run Code Online (Sandbox Code Playgroud)

我想从用户输入中删除引号,以便如果有人输入类似:"这是我的标题",它不会搞砸我的代码.

我试过这个并没有用:$ inputData ['title'] = str_replace(''','',$ _POST ['title']);

Pas*_*TIN 5

如果我正确理解了这个问题,你想要删除",$inputData['title']那么你的HTML代码就不会搞砸了?

如果是这样,"正确"的解决方案不是删除双引号,而是在执行实际输出之前转义它们.


考虑到您正在生成HTML,您应该使用该htmlspecialchars功能 ; 这样,双引号(以及其他几个字符)将被编码到HTML实体,并且在注入HTML标记时不会造成任何麻烦.

例如 :

echo '<input name="title" type="text" class="inputMedium" value="'
   . htmlspecialchars($inputData['title'])
   . '" />';
Run Code Online (Sandbox Code Playgroud)

注意:根据您的情况(特别是关于您可能正在使用的编码/字符集),您可能会传递一些额外的参数htmlspecialchars.


一般来说,无论您使用何种输出格式,都应始终将输出的数据作为输出转义.

例如 :