首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在文件中找到一个单词并使用php获取它旁边的字符?

如何在文件中找到一个单词并使用php获取它旁边的字符?
EN

Stack Overflow用户
提问于 2019-04-19 13:17:30
回答 3查看 64关注 0票数 0

我必须做一个聊天室使用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文件非常陌生,我很难理解它。请帮助我:

代码语言:javascript
复制
               $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中的名称

我只想知道怎么:

  • 在文件中找到一个词
  • 在文件中添加它旁边的字符
EN

回答 3

Stack Overflow用户

发布于 2019-04-19 13:36:33

这不是一点一点地读取它,而是使用file()将整个文件加载到一个数组中。然后,它处理每一行并使用explode()将其拆分,将其按空间拆分,并将其限制为2个元素,将类似于miroh RGB(219, 11, 11)的部分拆分为mirohRGB(219, 11, 11)。然后,它使用第一部分作为新数组的索引,并对其存储颜色。

代码语言:javascript
复制
$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;
}

如果你当时

代码语言:javascript
复制
print_r($colors);

你得到..。

代码语言:javascript
复制
Array
(
    [miroh] => RGB(219, 11, 11)
    [hellevator] => RGB(255, 11, 11)
)
票数 1
EN

Stack Overflow用户

发布于 2019-04-19 13:32:43

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

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

一旦你得到一条线,很容易得到一个用户的名字,它是相关的颜色。

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

票数 0
EN

Stack Overflow用户

发布于 2019-04-19 13:39:28

您只能使用chatusernames.txt并像这样编辑

miroh_RGB(219、11、11)

之后,你只需将每一行都炸开,用户的用户名和颜色就分开了。

代码语言:javascript
复制
$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])];
            }
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55762500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档