我在Linux服务器上有一个PHP网站。我在网站上电话号码旁边添加了一个按钮,点击该按钮会在服务器上写入一个文本文件,里面包含该电话号码。以下代码可以正常工作。
$file = './gebruikers/'.$naam.'/nummer.txt';
$write = $_POST['num'];
file_put_contents($file, $write);
现在我使用TAPI3做了一个C#应用程序,以拨打文本文件中的号码。我用FileSystemWatcher(监视器)来检查php保存文本文件的文件夹,这样每当文件被更新时就会拨打电话。
下面的代码会检查选择的用户,并监视该用户的文件夹以获取文本文件。
private void cbGebruikers_SelectedIndexChanged(object sender, EventArgs e)
{
if(cbGebruikers.Text != "")
{
comboBox1.Enabled = true;
button6.Enabled = true;
lblGebruiker.Visible = false;
lblTelefoon.Visible = true;
}
path = @"\\192.168.1.9\SB Alarm programma\web-sb\gebruikers\" + cbGebruikers.Text;
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastAccess;
watcher.Filter = "*.*";
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
lbltest.Text = watcher.Path.ToString();
}
当文本文件发生变化时,将执行以下代码。
private void OnChanged(object sender, FileSystemEventArgs e)
{
try
{
watcher.EnableRaisingEvents = false;
telnummer = File.ReadAllText(path + "/nummer.txt");
nummer = "0" + telnummer;
this.Invoke((MethodInvoker)delegate
{
txtNummer.Text = nummer;
MakeCall(nummer);
});
}
finally
{
watcher.EnableRaisingEvents = true;
}
}
这段代码可以正常工作,如果我在我的电脑上或者其他有访问权限的电脑上更改文件夹中的文本文件,应用程序就会调用。 但是如果PHP更改文本文件,则不会发生任何事情,但最后修改日期确实会更新。 有人对此有经验吗?