PHP随机图像脚本的麻烦

时间:2013-12-22 23:56:26

标签: php html

您好我创建随机的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>";

1 个答案:

答案 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>";
}