首先,这些函数中的哪一个返回带有单引号的字符串:
$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)
答案 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好运,
最好的问候,亚历山大。