如何使用shell脚本从另一台服务器调用PHP?我有一个PHP文件和一个shell脚本,这两个文件存储在不同的服务器上。
我有这个Shell脚本:
#!/bin/bash
php "http://example.com/csv_import.php"
但是当我手动运行此命令时,出现错误:Could not open input
PHP:
if (($handle = fopen($directory_root."filename.csv", "r")) !== FALSE){
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE){
$sql = "INSERT INTO tablename(col1,col2,col3,col4,col5)
VALUES ('".mysql_escape_string($data[0])."',
'".mysql_escape_string($data[1])."',
'".mysql_escape_string($data[2])."',
'".mysql_escape_string($data[3])."',
'".mysql_escape_string($data[4])."')";
$query = mysql_query($sql);
}
fclose($handle);
}
答案 0 :(得分:0)
在您的呼叫服务器上,让您的cron作业执行以下脚本(也驻留在您的呼叫服务器上):
<?php
$options = array(
CURLOPT_URL => 'http://example.com/csv_import.php',
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
?>
因此,在客户端:
cron调用runCurl.php
runCurl.php向服务器的csv_import.php文件发出http请求
在服务器上:
csv_import.php执行,将数据写入数据库(与csv_import.php位于同一服务器上)
csv_import.php存储在/ htdocs中,以便http请求可以访问
设置csv_import.php文件权限以使其可执行