【问题标题】:Get input from CLI and create Array in PHP. Is this correct?从 CLI 获取输入并在 PHP 中创建数组。它是否正确?
【发布时间】:2020-11-26 09:51:03
【问题描述】:

我的目标是制作一个简单的应用程序,它允许我从 CLI 快速输入数据并创建一个数组,然后将其作为一个条目传递到我的本地主机上的 MariaDB 上(现在我只是转储以检查它实际工作)。这是我今天的解决方案,虽然它有效,但我觉得它有点不完整。

我可以请您对此有经验吗?我计划在将数组提交到数据库之前在末尾添加一个检查以查看条目。

function createNewEntry()
{
    echo "Enter Practitioner Name: ";

    $getname = fgets(STDIN, 128);

    echo "Enter Practitioner email: ";

    $getemail = fgets(STDIN, 128);

    echo "Enter Practitioner Country: ";

    $getcountry = fgets(STDIN, 128);

    $thearray = array('Name' => $getname, 'email' => $getemail, 'Country' => $getcountry);

    return ($thearray);
}

$newprac = createNewEntry();

var_dump($newprac);

【问题讨论】:

  • 这个问题太宽泛,导致基于意见的答案。最好专注于一个特定的问题。
  • 那么,我的问题是,fgets() 命令是否适合这种类型的应用程序?

标签: php arrays input command-line-interface


【解决方案1】:

readline 函数简化了从命令行提示用户输入信息的任务。 PHP:readline Manual 页面也相当简单,因为该函数只有一个参数 - 提示字符串。

使用readline 可以让您稍微收紧一点,直接在数组构造函数中读取值。

<?php

function createNewEntry()
{
    $thearray = array(
      'Name' => readline( "Enter Practitioner Name: "),
      'email' => readline( "Enter Practitioner email: "),
      'Country' => readline( "Enter Practitioner Country: ")
    );

    return ($thearray);
}

$newprac = createNewEntry();

var_dump($newprac);

输出看起来是一样的:

Enter Practitioner Name: Doc Watson
Enter Practitioner email: doc@picker.net
Enter Practitioner Country: Bluegrass
array(3) {
  ["Name"]=>
  string(10) "Doc Watson"
  ["email"]=>
  string(14) "doc@picker.net"
  ["Country"]=>
  string(9) "Bluegrass"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-13
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多