我有一个包含3个不同php脚本的文件夹. email.php txt.php android.php
我将电子邮件和/或txts传递到各自的脚本,并使用http POST将数据发送到android脚本.
本来我只有电子邮件和txt,使用这个都没关系
$data = '//data fields condensed into a single string obtained from email or txt';
$filename= "output.php";
$newFile= fopen($filename, 'w+');
fwrite($newFile, $data);
fclose($newFile);`
没问题,脚本可以打开/写入文件,如果它没有退出,他们会创建它.该文件夹不可写.
现在我有android.php脚本,最初它无法打开/创建output.php,直到我使整个文件夹可写.现在它可以根据需要创建output.php.
现在的问题是,任何脚本都可以创建/写入output.php但是,一旦文件由其中一个脚本创建,其他脚本就无法写入
即如果android脚本创建output.php,则email和txt脚本会返回错误
如果电子邮件或txt脚本创建output.php然后android脚本返回错误
错误是’无法流fopen’或沿着这些线的东西.
Lorenzo(SO上的用户)开始提到用户的一些事情(即被管道的电子邮件将被视为与http POST命令不同的用户).脚本创建具有权限644的output.php(没有执行,只有所有者可以写),我无法手动将权限更改为777 – 虽然我更愿意获得一种允许脚本创建它的方式 – 所以我可以清空该文件夹定期出于备份原因而不必记得将其放回等…
我想我可以将3个脚本合并为一个(希望如此),但也不愿意.有没有人有任何其他想法?
谢谢
更新:由于我是新用户,无法“回答”我自己的问题 –
好的,所以在每个回复的人的帮助下,我找到了一个解决方案:
电子邮件和txt脚本由用户’所有者’运行,htmlPOST由用户’?’运行
我必须为用户’?’创建文件夹chmod 777.上班
当每个脚本运行时,它会检查文件’output.php’.如果它不存在,那么在fclose之后我添加了一个chmod 777–这样,其他用户运行的脚本可以稍后打开/写入.如果该文件已经存在,那么我没有添加chmod,因为如果它是错误的用户则会产生错误.
这是一个简单的例子:
$data = '//data fields condensed into a single string obtained from email or txt';
$filename= "output.php";
if (file_exists($filename)){
$newFile= fopen($filename, 'w+');
fwrite($newFile, $data);
fclose($newFile);
} else {
$newFile= fopen($filename, 'w+');
fwrite($newFile, $data);
fclose($newFile);
chmod($file, 0777);
}
谢谢你的帮助!