我有一個運行於cmd matlab函數的php文件 - >該函數創建.txt文件並將其填充分析結果。然後php文件將這個.txt文件作爲一個字符串(從.txt行)發送到數據庫(phpmyadmin)。 我的問題是,當matlab仍在寫入文件時,php開始從.txt發送信息。 我想用matlab和php知道他的全局變量來解決它,並將其用作Flag確定Matlab何時完成構建必要文件的標誌。我想使用窗口註冊表,但它非常複雜。有更簡單的方法嗎?防止文件碰撞PHP與Matlab
非常感謝, 多倫
我的PHP文件:
unlink('test.txt');
if(isset($_POST['filepath'])) {
$filename = $_POST['filepath'];
$inputDir = "C:\\xampp\\htdocs\\login";
$outputDir = "C:\\xampp\\htdocs\\login";
// here php open the matlab function from the cmd:
$command = "matlab -sd ".$inputDir." -r phpcreatefile2('".$outputDir."\\".$filename.".txt')";
exec($command);
$fileLoc= "".$outputDir."\\".$filename.".txt" ;
echo $fileLoc ;
echo "The following command was run: ".$command."<br/>";
echo $filename." was created in ".$outputDir."<br/>";
echo " Now the txt file will write in the DB <br/>";
//這裏我試圖檢查文件是否存在,如果它不是空的。但它不工作,因爲matlab仍然寫入文件。
while (1) {
if (file_exists("test.txt")){
echo "check1";
if (filesize("test.txt")!= 0) {
echo "check2";
$file = file('test.txt');
$sql = "INSERT INTO `ID_5525_Medical_record`(`Data`,`AV_Power`,`Highest_Amp`,`90BW`,`Url_figure`) VALUES ('$file[0]','$file[1]','$file[2]','$file[3]','$file[4]')" ;
if(mysqli_query($connection,$sql))
{
unlink('test.txt');
echo "the txt file is now in the DB <br/>";
}
break;
}
else {
echo "i am going to sleep";
sleep(1);
echo "i am awake";
}
}
}
`