我是初级PHP开发人员,有一年的经验。
这是我第一次请求帮助
如果有任何不合适的地方,请告诉我,非常感谢。
情况:
1.我们有两个不同的地方(域A,域B)
2.更新域A上的sql时,也保存一个JSON类型的txt文件。(json.txt)
3.然后“发送”此域文件中的txt文件到域B
4.读取并解码域B上的txt文件,然后用于更新sql
问题:
情况3中的“发送”是需要帮助的问题。在这种情况下可以使用哪种方法?
以下是代码中的整个过程:
Domain A = "c://example"
Domain B = "220.xxx.xx"
testing file = "sending.txt"
DomainA中
<?php
// this code is on Domain A
include_once "lib/database.php";
$pdo = DB_CONNECT();
$file = "sending.txt";
$f = fopen($file, 'w');
// select data from sql, update and put in array, then save it into txt
$sql = "SELECT id,lastupdated FROM customer";
$pdo -> query($sql);
$rs = $pdo -> query($sql);
foreach ($rs as $key => $row) {
$array[$key]=[
"id" => $row["id"],
"lastupdated" => $row["lastupdated"],
];
$sql = "INSERT INTO customer_test (customer_id,lastupdated) VALUES
(".$row["id"].",'".$row["lastupdated"]."')";
$pdo -> query($sql);
}
$array_json = json_encode($array);
fwrite($f, $array_json);
fclose($f);
?>
Json txt I svaed
[{"id":"1","lastupdated":"2017-03-01 13:55:17"},
{"id":"2","lastupdated":"2017-01-08 17:03:39"},
{"id":"3","lastupdated":"2017-02-07 09:34:29"}]
域B
<?php
include_once "lib/database.php";
$pdo = DB_CONNECT();
// get from local txt which has been sent to here From other Domain;
$json_data = file_get_contents('sending.txt');
$array = json_decode($json_data, true);
//then save into same database,but this one is on Domain B.
foreach ($array as $i => $row) {
$id = $array[$i]["id"];
$lastupdated = $array[$i]["lastupdated"];
$sql = "INSERT INTO customer_test (customer_id,lastupdated) VALUES
(".$id.",'".$lastupdated."')";
$pdo -> query($sql);
}
?>
我应该在这两个php文件中添加什么代码?
我的老板只给我这个链接: How to simulate browser form POST method using PHP/cURL
但我仍然没有任何想法。
甚至不知道在哪里添加我的代码进行测试。
如果您有这个问题,请查看。
非常感谢。
答案 0 :(得分:0)
将其添加到域A的底部。这将生成php curl库的发布请求。你需要安装它,它可能是。 http://php.net/manual/en/book.curl.php
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "object_tracker.h"
#include "test_file.h"
struct Object_Tracker* object_tracker; //Global scope variable
int main(int argc, char* argv[]) {
object_tracker = Object_Tracker_Create(); //Assign value for the variable
struct Test* test = Test_Create();
Test_Destroy(test);
printf("heello\n");
}
通过将其放在域B上来检查域A中的数据:
if (sortExpression.IndexOf("companyCode", StringComparison.OrdinalIgnoreCase) >= 0)
{
sortExpression += ", costCenter, acc_code";
}
if (sortExpression.IndexOf("costCenter", StringComparison.OrdinalIgnoreCase) >= 0)
{
sortExpression += ", companyCode, acc_code";
}
if (sortExpression.IndexOf("acc_code", StringComparison.OrdinalIgnoreCase) >= 0)
{
sortExpression += ", companyCode, costCenter";
}
{
//default, everything else.
}
此外,打开元素检查器上的网络选项卡,以更好地了解正在进行的操作。
$ch = curl_init('http://220.xxx.xx');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $array_json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($array_json))
);
它可能会反过来。域A不发送文本...域B从域A检索文本。
来自php.net的示例:http://php.net/manual/en/curl.examples.php
var_dump($_RESPONSE);exit;