我正在尝试通过表单提交来使用保存到list.txt的数据,并在页面上随机显示。
index.php
<?php
//$list = file_get_contents('list.txt'); //Tested without fopen
$myfile = fopen('list.txt', "r") or die ("");
$list = fread($myfile,filesize('list.txt'));
$bg0 = array($list ,'yellow'); // array of colors
fclose($myfile);
$i = rand(0, count($bg0)-1); // generate random number size of the array
$selectedColor = "$bg0[$i]"; // set variable equal to which random color was chosen
echo selectedColor;
?>
list.txt
'red', 'blue', 'green'
我不确定您要在这里实现什么,但是您遇到的问题很少:
1)selectedColor
应为$ selectedColor
2)加载“数组”。
您不能简单地加载文本并期望php猜测格式。如果要加载文件并将其视为数组,则需要指示php进行加载。
在您的示例中,您可以例如拆分文本并修剪不需要的字符:
$list = explode(',', $list);
array_walk($list, function(&$elem) {
$elem = trim($elem, ' \'');
});
3)$ selectedColor = $ bg0 [$ i];
替换:
$selectedColor = "$bg0[$i]";
with:
$selectedColor = $bg0[$i];
4)数组推送
此行不正确:
$bg0 = array($list ,'yellow'); // array of colors
替换为:
$bg0 = array_merge($list, ['yellow']); // array of colors
如果要对单个数组进行操作,可以使用array_push
,但是请确保稍后更改使用的变量。]>
例如:
<?php
//$list = file_get_contents('list.txt'); //Tested without fopen
$myfile = fopen('list.txt', "r") or die ("");
$list = fread($myfile,filesize('list.txt'));
$list = explode(',', $list);
array_walk($list, function(&$elem) {
$elem = trim($elem, ' \'');
});
$bg0 = array_merge($list , ['yellow']); // array of colors
fclose($myfile);
$i = rand(0, count($bg0)-1); // generate random number size of the array
$selectedColor = $bg0[$i]; // set variable equal to which random color was chosen
echo $selectedColor;
?>
您需要使用explode()
将字符串转换为数组,然后根据需要添加其他元素: