我想在HTML中使用随机id
属性:
<?php $id = uniqid(); ?>
<div data-cycle-prev="#<?php echo $id; ?>_slideshow_prev">
<div id="<?php echo $id; ?>_slideshow_prev"></div>
</div>
我正在使用PHP方法uniqid
来生成它,但我不知道它是否安全且符合W3C?
我对合规性的关注是PHP生成的HTML输出。并非所有字符都允许在HTML属性中,因此我想知道uniqid()
是否只生成允许的字符。
答案 0 :(得分:3)
uniqid
返回id,其中包含十六进制符号(0-9,a-f)。手动评论中解释了这一点 - http://php.net/manual/en/function.uniqid.php#95001
所以,是的,这对于html属性是安全的。
答案 1 :(得分:2)
是的,它是保存,只要你不生成两次id,这是非常不明智的。
我会以另一种方式做到这一点。也许你想把它介绍到你的图书馆
function getNextInt() {
static $i = 0;
$i++;
return $i;
}
在你的模板中:
<?php $id = getNextInt(); ?>
<div data-cycle-prev="#<?php echo $id; ?>_slideshow_prev">
<div id="<?php echo $id; ?>_slideshow_prev"></div>
</div>
如果您使用的是较早版本的HTML,我们需要先输入一个字母作为id(注释中来自@ mb21的状态):
<?php $id = 'mycontrol' . getNextInt(); ?>