Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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 在cURL过程完成后返回一个变量_Php_Curl - Fatal编程技术网

Php 在cURL过程完成后返回一个变量

Php 在cURL过程完成后返回一个变量,php,curl,Php,Curl,我编写了一些脚本,它驻留在两个不同的服务器上,并通过cURL连接。这是我第一次尝试cURL,经过一天的阅读和反复尝试,我才达到现在的水平。除了需要在ServerB完成时将$valid变量传回ServerA,以便我可以使用它触发SiteA上的消息堆栈错误系统之外,脚本在所有点上都起作用 在serverA上,我有以下功能: <?php $domain = HTTP_SERVER; $domain_name = substr($domain, 7); $module_name = "SagePa

我编写了一些脚本,它驻留在两个不同的服务器上,并通过cURL连接。这是我第一次尝试cURL,经过一天的阅读和反复尝试,我才达到现在的水平。除了需要在ServerB完成时将$valid变量传回ServerA,以便我可以使用它触发SiteA上的消息堆栈错误系统之外,脚本在所有点上都起作用

在serverA上,我有以下功能:

<?php
$domain = HTTP_SERVER;
$domain_name = substr($domain, 7);
$module_name = "SagePayServer";

//set POST variables
$url = 'localhost/zc151/validity_check.php';
$fields = array(
                    'dname' => urlencode($domain_name),
                    'mname' => urlencode($module_name)
            );

//url-ify the data for the POST
$fields_string = http_build_query($fields);

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);
?>

在serverB上,我有:

<?php
require('includes/application_top.php');
$domain = $_POST['dname'];
$module = $_POST['mname'];

$install_exists_query = "SELECT * FROM al_monitor WHERE module_name = '$module' AND domain_name = '$domain'";
$install_exists_result = $db->Execute($install_exists_query);

if ($install_exists_result->RecordCount() == 0) {
$valid = 0; 
}else{
// Calculate dates
$todays_date = strtotime("now");
$delta_eleven = strtotime("+11 months");
$delta_364 = strtotime("+1 year -1 day");
$delta_year = strtotime("+1 year");

//the values you have above are TIMESTAMPS (the number of seconds since January 1 1970 00:00:00 UTC)
//if you want dates, you can convert as follows
$idate = date("d-m-Y", $todays_date);
$wdate= date("d-m-Y", $delta_eleven);
$fwdate = date("d-m-Y", $delta_364);
$edate = date("d-m-Y", $delta_year);
// -- --------------------------------------------------------

//WRITE TO THE DATABASE
$sql = "UPDATE al_monitor SET idate = '$idate' WHERE
        module_name = '$module' AND domain_name = '$domain'";
$db->Execute($sql);
$sql = "UPDATE al_monitor SET wdate = '$wdate' WHERE
        module_name = '$module' AND domain_name = '$domain'";
$db->Execute($sql);
$sql = "UPDATE al_monitor SET fwdate = '$fwdate' WHERE
        module_name = '$module' AND domain_name = '$domain'";
$db->Execute($sql);
$sql = "UPDATE al_monitor SET edate = '$edate' WHERE
        module_name = '$module' AND domain_name = '$domain'";
$db->Execute($sql);
// -- --------------------------------------------------------   
$valid=1;
}
// End insert module installation date into central database

CURLOPT_RETURNTRANSFER:将value设置为TRUE,以将传输作为curl_exec()返回值的字符串返回,而不是直接输出

尝试:

$result
现在应该包含CURL请求返回的数据


完成处理后,您还需要在服务器B上的脚本中输出
$value

echo $value;

CURLOPT_RETURNTRANSFER:将value设置为TRUE,以将传输作为curl_exec()返回值的字符串返回,而不是直接输出

尝试:

$result
现在应该包含CURL请求返回的数据


完成处理后,您还需要在服务器B上的脚本中输出
$value

echo $value;

CURLOPT_RETURNTRANSFER:将value设置为TRUE,以将传输作为curl_exec()返回值的字符串返回,而不是直接输出

尝试:

$result
现在应该包含CURL请求返回的数据


完成处理后,您还需要在服务器B上的脚本中输出
$value

echo $value;

CURLOPT_RETURNTRANSFER:将value设置为TRUE,以将传输作为curl_exec()返回值的字符串返回,而不是直接输出

尝试:

$result
现在应该包含CURL请求返回的数据


完成处理后,您还需要在服务器B上的脚本中输出
$value

echo $value;

在服务器B上使用
json\u encode
,在服务器a上使用
json\u decode
可能也是一个好主意。另外,使用
count($fields)
表示CURLOPT\u POST选项的真或假可能不是一个好主意。。。当然,当数组不为空时,它将松散地计算为true,当数组为空时,它将松散地计算为false,但我认为您最好在默认情况下传入true,如果它为空,则根本不执行请求…@scrowler。工作完美。非常感谢你的其他建议。正如我所说的,今天是我第一次尝试使用cURL,因此这是一个陡峭的学习曲线。在服务器B上使用
json_编码
,在服务器a上使用
json_解码
,可能也是一个好主意。另一个注意事项,使用
count($fields)
为您的CURLOPT_POST选项表示真或假可能不是一个好主意。。。当然,当数组不为空时,它将松散地计算为true,当数组为空时,它将松散地计算为false,但我认为您最好在默认情况下传入true,如果它为空,则根本不执行请求…@scrowler。工作完美。非常感谢你的其他建议。正如我所说的,今天是我第一次尝试使用cURL,因此这是一个陡峭的学习曲线。在服务器B上使用
json_编码
,在服务器a上使用
json_解码
,可能也是一个好主意。另一个注意事项,使用
count($fields)
为您的CURLOPT_POST选项表示真或假可能不是一个好主意。。。当然,当数组不为空时,它将松散地计算为true,当数组为空时,它将松散地计算为false,但我认为您最好在默认情况下传入true,如果它为空,则根本不执行请求…@scrowler。工作完美。非常感谢你的其他建议。正如我所说的,今天是我第一次尝试使用cURL,因此这是一个陡峭的学习曲线。在服务器B上使用
json_编码
,在服务器a上使用
json_解码
,可能也是一个好主意。另一个注意事项,使用
count($fields)
为您的CURLOPT_POST选项表示真或假可能不是一个好主意。。。当然,当数组不为空时,它将松散地计算为true,当数组为空时,它将松散地计算为false,但我认为您最好在默认情况下传入true,如果它为空,则根本不执行请求…@scrowler。工作完美。非常感谢你的其他建议。正如我所说,今天是我第一次尝试卷曲,所以这是一个陡峭的学习曲线。