您好我创建随机的PHP图像脚本,但它不起作用。它回应了链接,但它不包括随机变量。
$f_contents = file ("random1.txt", FILE_USE_INCLUDE_PATH);
$link = $f_contents[array_rand ($f_contents)]; /*Line 6*/
echo '<a href="http://www.site.com/view.php?t='.$link.'"><img src="http://www.site.com/images/'.$link.'.jpg" /></a>';
echo "</center>";
答案 0 :(得分:2)
PHP函数array_rand返回一个数组。所以你需要改变这个:
$link = $f_contents[array_rand($f_contents)]; /*Line 6*/
进入这个:
$link = $f_contents[array_rand($f_contents)[0]]; /*Line 6*/
或者也许这样:
$rand_value = array_rand($f_contents);
$link = $f_contents[$rand_value[0]]; /*Line 6*/
我还建议您对代码进行错误验证,以便始终检查$f_contents
是否包含内容:
$f_contents = file ("random1.txt", FILE_USE_INCLUDE_PATH);
if (!empty($f_contents)) {
$rand_value = array_rand($f_contents);
$link = $f_contents[$rand_value[0]]; /*Line 6*/
echo '<a href="http://www.site.com/view.php?t='.$link.'"><img src="http://www.site.com/images/'.$link.'.jpg" /></a>';
echo "</center>";
}
编辑此外,array_rand
接受第二个参数,该参数与返回的随机项数量相关联。因此,如果您将该值设置为1
,那么它将返回一个字符串而不是一个数组,因此代码将如下所示:
$f_contents = file ("random1.txt", FILE_USE_INCLUDE_PATH);
if (!empty($f_contents)) {
$rand_value = array_rand($f_contents, 1);
$link = $f_contents[$rand_value]; /*Line 6*/
echo '<a href="http://www.site.com/view.php?t='.$link.'"><img src="http://www.site.com/images/'.$link.'.jpg" /></a>';
echo "</center>";
}