为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
撒科打诨 2021-04-27 13:53:43
我必须使用学校的html,css和php来创建一个聊天室。一切都必须保存在文本文件中。我正在尝试为所有用户名提供聊天室颜色。我将所有用户名保存在一个文本文件中,并将颜色保存在另一个文本文件中。chatusernames.txtmirohhellevatorusernamecolors.txtmiroh 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中找到的名称。我只需要知道如何:-在文件中查找单词-在文件中添加字符
查看完整描述

3 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

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

)


查看完整回答
反对 回复 2021-05-07
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

如果我是我,我会为文件使用标准格式,例如JSON,INI或CSV。

如果您仍然希望像以前一样使用非标准格式的文件,则可以使用fgets函数逐行读取文件。

一旦获得一行,就很容易获得用户名及其相关的颜色。

编辑:对于PHP中的字符串连接,.使用的是运算符,而不是+


查看完整回答
反对 回复 2021-05-07
?
精慕HU

TA贡献1845条经验 获得超8个赞

您只能使用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])];

            }

        }


查看完整回答
反对 回复 2021-05-07
  • 3 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信