2013-08-05 36 views
-1

我们在HTML页面中有几个字段,并且正在使用php写入一个文件。在linux中使用php创建一个txt文件

该文件有数据,但是,运行一个bash脚本,该文件带有一个.txt作为扩展名不起作用。

当文件被打开并手动重新保存时,bash脚本将正常工作!

我试过改变文件的权限,但bash脚本仍然没有使用这个文件。任何帮助,这是非常感谢。

php脚本:

$name = "test.txt";  
$handle = fopen($name, "w");  
fwrite($handle, "my message");  
fclose($handle); 

bash脚本:

INPUT="$1" 

OLDIFS=$IFS 
IFS=, 

[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; } 

while read message number ; do 

    echo $message # or whaterver you want to do with the $line variable 

    #j=$[$(line)] 

    echo $number 

    echo "$message" | gnokii --sendsms $number --smsc $SMSC 

done < $INPUT 

IFS=$OLDIFS 
+0

你可以发布什么bash脚本试图做什么?另外,澄清你的意思是“只是扩展名被重命名”? –

+0

你可以试试:'$ name =“/tmp/test.txt”;' – anubhava

+0

我回滚你的问题,因为如果你将'unlink'改成'fclose',这是一个完全不同的问题。 – Mike

回答

3

你可能想使用fclose($handle),而不是unlink()

编辑,然后确定, “因为......”

  1. fclose($handle)关闭句柄引用的文件:$handle
  2. unlink()将文件路径字符串作为参数而不是资源。
  3. 如果按照预期使用,unlink()将实际上删除该文件。
+1

解释会很好......“因为......” – nand

+1

谢谢,试过但它不工作 – rlvamsi

+0

@TheGunner,unlink()接受资源,因为它是* second *参数。 – nand

0

unlink()如上所述会删除文件。刚刚创建了这样一个简单的脚本

<?php 
$name = "/var/www/test.txt";  
$handle = fopen($name, "w");  
fwrite($handle, "test,9944");  
fclose($handle); 
?> 

此脚本工作f9与存储数据。但在文件输入文件test.txt上运行bash脚本不会执行任何操作。但再次打开和保存相同的文件名,它的作品。

0

终于得到了答案,它的文件结尾是由PHP创建的文本文件丢失。无论如何谢谢大家的贡献。