0

想象一下 2 个应用程序在同一台服务器上使用不同的 mysql 数据库运行。我需要一种在两个应用程序之间交换数据的方法。一个应用程序无权访问另一个应用程序的数据库。交换只是后端相关(自动的东西),不需要用户交互。

使用 php 执行此操作的最佳和最安全的方法是什么?

4

2 回答 2

1

您可以使用命名管道——它们非常适合进程间通信。

http://my.opera.com/zomg/blog/2007/08/29/php-and-named-pipes

您可以在交互式 php 中尝试一下:

Davids-MacBook-Air:~ dearlbry$ php -a
Interactive shell

php > posix_mkfifo("test-pipe", 0644);
php > $pipe = fopen('test-pipe','r+');
php > print fgets($pipe);

让它坐在那里等待,然后打开另一个终端:

Davids-MacBook-Air:~ dearlbry$ php -a
Interactive shell

php > $pipe = fopen('test-pipe','r+');
php > fwrite($pipe, "Hello World\n");
php > fclose($pipe);

观看第一个过程中出现的“Hello World”。确保输入“\n”,因为管道被缓冲并且换行符发出刷新它的信号。

于 2012-08-28T12:14:47.823 回答
0

您可以使用一个RESTful API,其中一个应用程序可以向另一个应用程序 POST 和 GET 数据。

// From application2.com

$id = $curl->post('http://application1.com/users/save/', array(
    'name' => 'Matt',
    'bio' => 'I am a person.'
));

// $id is generated from a DB insert

$user = $curl->post('http://application1.com/users/bio/', array(
    'id' => $id
));

// $user contains an array or object of information about Matt
于 2012-08-28T11:21:19.877 回答