2013-08-05 71 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創建的文本文件丟失。無論如何謝謝大家的貢獻。