Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数据从一个cli应用程序传递到另一个cli应用程序的最佳方式是什么_Php_Ruby_Shell_Command Line_Command Line Interface - Fatal编程技术网

Php 将数据从一个cli应用程序传递到另一个cli应用程序的最佳方式是什么

Php 将数据从一个cli应用程序传递到另一个cli应用程序的最佳方式是什么,php,ruby,shell,command-line,command-line-interface,Php,Ruby,Shell,Command Line,Command Line Interface,例如,如何将数据从一个cli应用程序(例如Ruby脚本)传递到PHP脚本。我指的是原始数据、文本、二进制等。。由于使用临时文件的原始数据,参数也会失效。我所知道的最后一件事是stdin,stdout。也许有人知道什么更好?取决于这些程序的执行方式(相互之间的关系)。如果一个停止并启动另一个,STDIN/OUT,甚至抛出一个文件可能会起到作用(尽管它可能被认为是跛行,但它确实如此),如果有大量的数据,您甚至可以考虑在SQLite之类的数据库中创建一个小的数据库表。这还取决于需求,数据之间传递的数据

例如,如何将数据从一个cli应用程序(例如Ruby脚本)传递到PHP脚本。我指的是原始数据、文本、二进制等。。由于使用临时文件的原始数据,参数也会失效。我所知道的最后一件事是stdin,stdout。也许有人知道什么更好?

取决于这些程序的执行方式(相互之间的关系)。如果一个停止并启动另一个,STDIN/OUT,甚至抛出一个文件可能会起到作用(尽管它可能被认为是跛行,但它确实如此),如果有大量的数据,您甚至可以考虑在SQLite之类的数据库中创建一个小的数据库表。这还取决于需求,数据之间传递的数据可能有多不稳定


如果存在父/子进程关系,那么父进程启动子进程,则可以考虑管道/FIFO或共享内存或消息队列或任何其他形式的IPC。

取决于这些程序是如何执行的(彼此之间)。如果一个停止并启动另一个,STDIN/OUT,甚至抛出一个文件可能会起到作用(尽管它可能被认为是跛行,但它确实如此),如果有大量的数据,您甚至可以考虑在SQLite之类的数据库中创建一个小的数据库表。这还取决于需求,数据之间传递的数据可能有多不稳定


如果有父/子进程关系,那么父进程启动子进程,您可能会考虑管道/FIFO或共享内存或消息队列或任何其他形式的IPC。

< P >您正在运行什么操作系统?这在某种程度上决定了你可以得到什么。您应该使用平台的通用功能。在*nix系统上,我们使用管道(
|
)、套接字和数据文件,具体取决于应用程序

实际上没有一种方法可以做到这一点,它只取决于应用程序的类型和数据的类型

如果要移动文本或CSV数据列,可以使用管道或文本文件

如果要在Ruby应用程序之间移动散列和对象,请使用JSON或“Marshall”数据和管道、套接字或文件

如果要在不同语言之间移动数据,请使用JSON、XML或YAML以及这些数据路径之一

我们经常使用JSON作为应用程序间的数据格式,并编写代码,以便在设置命令行标志时允许它发出JSON。这使我们可以轻松地用一点REST服务包装命令行应用程序,并远程调用它们,将结果发布到web上


尽管如此,没有一条硬性规定来说明任何事情是如何完成的,只要与您的代码保持一致,并遵循您使用的应用程序的风格即可。

您使用的是什么操作系统?这在某种程度上决定了你可以得到什么。您应该使用平台的通用功能。在*nix系统上,我们使用管道(
|
)、套接字和数据文件,具体取决于应用程序

实际上没有一种方法可以做到这一点,它只取决于应用程序的类型和数据的类型

如果要移动文本或CSV数据列,可以使用管道或文本文件

如果要在Ruby应用程序之间移动散列和对象,请使用JSON或“Marshall”数据和管道、套接字或文件

如果要在不同语言之间移动数据,请使用JSON、XML或YAML以及这些数据路径之一

我们经常使用JSON作为应用程序间的数据格式,并编写代码,以便在设置命令行标志时允许它发出JSON。这使我们可以轻松地用一点REST服务包装命令行应用程序,并远程调用它们,将结果发布到web上


综上所述,没有一条硬性规定来说明如何做任何事情,只要与您的代码保持一致,并遵循您正在使用的应用程序的风格即可。

xml通常用于不同应用程序之间的通信。他没有问要使用什么格式,而是问如何在程序之间发送数据。这并没有回答这个问题。xml通常用于不同应用程序之间的通信。他没有问使用什么格式,而是问如何在程序之间发送数据。这并不能回答问题。