我的供应商每天都会发送订单状态的更新,并在我的sql db中导入一个可变的静态文件名。我的cronjob有以下代码:
<?php
require('cron_config.php');
// Open and parse the sales.csv file
$fh = fopen("../files/out/orderstatus.csv", "r");
while ($line = fgetcsv($fh, 1000, ","))
{
$order_id = $line[0];
$order_status_id = $line[1];
$date_modified = $line[2];
// Insert the data into the sales table
$query = "UPDATE oc_order o SET order_status_id='$order_status_id',
date_modified='$date_modified' WHERE order_id = '$order_id'";
$result = $mysqli->query($query);
}
fclose($fh);
$mysqli->close();
?>
在我的代码中,您会看到静态文件名&#34; orderstatus.csv&#34;。将来我会收到一个动态文件名(例如:orderstatus _&#34; order_id&#34; .csv。如何用我的代码识别这个文件?命名的order_id已经是sql_query的一部分了。
感谢您的帮助
答案 0 :(得分:1)
做得好的家伙们。使用glob()和unlink()完成了这项工作。代码如下:
import subprocess
# if the script don't need output.
subprocess.call(["php", "/path/to/your/script.php"])
# if you want output
proc = subprocess.Popen("php /path/to/your/script.php", shell=True, stdout=subprocess.PIPE)
script_response = proc.stdout.read()
答案 1 :(得分:0)
为什么不搜索它:
$result = array_filter(array_map(
function($a){
return strpos($a,'orderstatus_')===0?$a:null;
}
,scandir('../files/out/')));
结果数组仅保存文件夹中以orderstatus_
开头的所有文件。