如何确保字符串有双引号?

时间:2015-12-05 16:13:21

标签: php

首先,这些函数中的哪一个返回带有单引号的字符串:

$data = strval($data);     
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
$data = mysqli_real_escape_string($mysqli,$data);

我怎样才能确保我的字符串有双引号和两端而不是'? Tyvm求助

编辑:我直接在POST中收到我的字符串(如$ received = $ _POST [" string"])并通过上述其中一个函数运行$,最终将其转换为&#39 ; $收到'因为它没有反应爆炸(" \ n",$ received)

1 个答案:

答案 0 :(得分:4)

这就是你如何在代码中声明字符串的问题。

所有这些函数(实际上,所有返回字符串的函数)都只返回一个字符串。当您在代码中指定字符串时,单引号/双引号很重要。

echo '\nHey!'; // outputs `\nHey!`
echo "\nHey!"; //Outputs a blank line and `Hey!`

因此,只有在代码中指定这些字符串时,双/单引号才有意义。

trim('\nHey!') // returns `\nHey!`
trim("\nHey!") // returns just `Hey!`

所以,如果你有一些字符串,比方说$_POST['str'],那么用户在文本字段中输入的内容就完全相同了。如果他在那里添加换行符,则会换行,如果他输入\n,则为\n

您可以阅读有关单/双引号差异in this question的更多信息,但您应该记住的唯一事项是:

  

仅对字符串有用声明代码正确

PHP有时可能看起来有点奇怪,但它绝对理智(除了针干草堆顺序:))

祝PHP好运,

最好的问候,亚历山大。