我必须做一个聊天室使用html,css和php的学校。所有东西都必须保存在文本文件中。我试图在聊天室的颜色中给出所有的用户名。我将所有用户名保存在文本文件中,并将颜色保存在不同的文本文件中。
chatusernames.txt
米罗
舵机
usernamecolors.txt
miroh RGB(219、11、11)
舵机RGB(255,11,11)
我能够从chatusernames.txt中得到这个名字,现在我必须从usernamecolors.txt那里得到颜色。我想我可以比较单词和找到名字,但我不知道如何得到它旁边的颜色。我想把颜色放在一个简单的字符串中。
例如。我在usernamecolors.txt中得到了miroh,但是无法从它中得到RGB(219,11,11)。
我对使用php文件非常陌生,我很难理解它。请帮助我:
$usernamecolors = fopen($path . "usernamecolors.txt", "r") or die("Unable to open file!");
$findname = true;
while (!feof($usernamecolors)) {
$letter = fgetc($usernamecolor);
if ($letter != " " || $letter != ':') {
$findname = $findname + $letter;
if ($findname == $name) {
}
}
}我的代码乱七八糟对不起。$name是从usernames.txt中取出的用户名,$findname是usernamecolors.txt中的名称
我只想知道怎么:
发布于 2019-04-19 13:36:33
这不是一点一点地读取它,而是使用file()将整个文件加载到一个数组中。然后,它处理每一行并使用explode()将其拆分,将其按空间拆分,并将其限制为2个元素,将类似于miroh RGB(219, 11, 11)的部分拆分为miroh和RGB(219, 11, 11)。然后,它使用第一部分作为新数组的索引,并对其存储颜色。
$usernamecolors = file($path . "usernamecolors.txt",
FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)
or die("Unable to open file!");
$colors = [];
foreach ( $usernamecolors as $line ) {
list($name, $color) = explode(" ", $line, 2);
$colors[$name] = $color;
}如果你当时
print_r($colors);你得到..。
Array
(
[miroh] => RGB(219, 11, 11)
[hellevator] => RGB(255, 11, 11)
)发布于 2019-04-19 13:32:43
如果我是您,我就会为文件使用标准格式,如JSON、INI或CSV。
如果您仍然想像以前一样使用非标准格式的文件,可以使用飞碟函数逐行读取文件。
一旦你得到一条线,很容易得到一个用户的名字,它是相关的颜色。
编辑:对于PHP中的字符串连接,使用的是.操作符,而不是+
发布于 2019-04-19 13:39:28
您只能使用chatusernames.txt并像这样编辑
miroh_RGB(219、11、11)
之后,你只需将每一行都炸开,用户的用户名和颜色就分开了。
$usernamecolors = fopen($path . "usernamecolors.txt", "r") or die("Unable to open file!");
$users = [];
while (!feof($usernamecolors)) {
$line = fgets($usernamecolors);
if (trim($line) != '') {
$line = explode('|', $line);
$users[] = ['username' => $line[0], 'color' => trim($line[1])];
}
}https://stackoverflow.com/questions/55762500
复制相似问题