猿问

如何在文件中查找单词并使用php获取其旁边的字符?

我必须使用学校的html,css和php来创建一个聊天室。一切都必须保存在文本文件中。我正在尝试为所有用户名提供聊天室颜色。我将所有用户名保存在一个文本文件中,并将颜色保存在另一个文本文件中。


chatusernames.txt

miroh

hellevator


usernamecolors.txt

miroh RGB(219,11,11)

hellevator 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中找到的名称。


我只需要知道如何:

-在文件中查找单词-在文件中

添加字符


撒科打诨
浏览 146回答 3
3回答

互换的青春

而不是一点一点地读取它,而是使用将整个文件加载到一个数组中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))

一只甜甜圈

如果我是我,我会为文件使用标准格式,例如JSON,INI或CSV。如果您仍然希望像以前一样使用非标准格式的文件,则可以使用fgets函数逐行读取文件。一旦获得一行,就很容易获得用户名及其相关的颜色。编辑:对于PHP中的字符串连接,.使用的是运算符,而不是+

精慕HU

您只能使用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])];            }        }
随时随地看视频慕课网APP
我要回答