我们没有将数据存储在表中,而是将它们存储在服务器的日志文件中。我想创建关于这些数据的报告。我想连接到服务器并让这些文件解析它们并在它们上运行查询,但我的经理要求我在服务器上编写脚本来执行查询计算并返回数据集。
我怎样才能做到这一点。我是在服务器上编写脚本的新手。我可以在服务器上编写 PHP 脚本吗?有人可以解释如何完成上述任务吗?
我可以在服务器上编写 PHP 脚本吗?
是的
有人可以解释如何完成上述任务吗?
这是在 StackOverflow 的答案中广泛使用的方法。您需要一些编程技能才能做到这一点,如果您不确定从哪里开始,那么您可能没有这些技能,应该聘请开发人员为您完成这项工作。
但步骤是:
正如您所说,我会将其编写为 PHP 脚本。编写 PHP 脚本以标准化格式(例如 XML 或 JSON)提供结果。然后,您的客户端程序只需从http://example.com/secure/processLogs.php下载。根据您选择的客户端语言,您可以使用多种身份验证方法(例如 HTAccess)来保护 PHP 脚本。一旦你下载了 JSON 或 XML,只需通过解析器运行它(只需谷歌,它们就是一毛钱),然后你就可以将结果加载到客户端中。希望这可以帮助。
这是一个小例子:
// ---- begin of client.php ---
//
// client sending request to server responding with JSON
//
<?php
function connectToServer($server_url,$post_data) {
$ch = curl_init($server_url);
if ($ch == FALSE) return false;
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));
$res = curl_exec($ch);
if (curl_errno($ch) != 0) {
$errstr = curl_error($ch);
curl_close($ch);
return false;
} else {
curl_getinfo($ch, CURLINFO_HEADER_OUT);
curl_close($ch);
return json_decode($res);
}
}
// sending data to server, to be processed there and waiting data from it:
foreach(connectToServer("http://192.168.0.1/server.php",
array("my"=>"data")) as $key=>$val) {
printf("%s, %s\n",$key,$val);
}
?>
// ---- end of client.php ---
// ---- begin of server.php ---------
<?php
if(isset($_POST["my"])){
$my = $_POST["my"];
header("Content-type: application/json");
echo json_encode(array("hi"=>"there","my_is"=>$my));
}
?>
// ---- end of server.php ---------
编写一个脚本来解析这些文件并将它们加载到数据库中,以便您可以有效地运行查询。不要重新发明轮子。