Php 如何在此序列中生成字符

Php 如何在此序列中生成字符,php,random,character,Php,Random,Character,我有以下代码。我怎样才能使它包含特殊的允许字符(那些由于注入而不会压缩db的字符),如:!@#%&* 难道你不能调用mysql\u real\u escape\u string()将字符转义为mysql安全字符吗 编辑 可以通过以下方式进一步转义字符: 或 按照这篇关于正确的PHP安全编码的MySQL文章中所示的格式(特别是第78页和第79页),您可以使用以下内容作为完全转义的方法。 您可以创建一个包含您想要使用的任何符号的数组,然后运行一个循环,从该数组中随机选择5 $idchars = "

我有以下代码。我怎样才能使它包含特殊的允许字符(那些由于注入而不会压缩db的字符),如:!@#%&*


难道你不能调用
mysql\u real\u escape\u string()
将字符转义为mysql安全字符吗

编辑 可以通过以下方式进一步转义字符:

按照这篇关于正确的PHP安全编码的MySQL文章中所示的格式(特别是第78页和第79页),您可以使用以下内容作为完全转义的方法。


您可以创建一个包含您想要使用的任何符号的数组,然后运行一个循环,从该数组中随机选择5

$idchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#%&*";
$rnd_id = "";

for ($i = 0;$i<5;$i++)  $rnd_id .= $idchars[rand(0,strlen($idchars)-1)];
$idchars=“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz123456789!”;
$rnd_id=“”;

对于($i=0;$iOh好的,我会这样做。但是如何包括@%*个。我听说它们很好,因为密码很难破解。我不知道这些字符需要转义,但你可能可以做一些事情,比如我在回答中添加的链接。见鬼,你甚至可以使用
preg\u replace
添加转义SLA他一开始就喜欢那些角色。
$sub = addcslashes(mysql_real_escape_string("%something_"), "%_");
// $sub == \%something\_
$idchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#%&*";
$rnd_id = "";

for ($i = 0;$i<5;$i++)  $rnd_id .= $idchars[rand(0,strlen($idchars)-1)];