2016-06-07 109 views
0

試圖弄清楚如何在包含來自其他文件的默認信息時創建和保存文件。我試過包括但它沒有工作。任何有關如何建立這個文件的建議?試圖在PHP中建立一個文件,並使用fwrite文件

<?php 
$wrtID = $_POST["fileID"]; 

SQL statement here to get relevant info 

mkdir("CNC/$wrtID", 0770, true); 

?> 
<?php 

$batfile = fopen("CNC/$wrtID/$wrtID.bat", "w") or die("Unable to open file!"); 
$txt = " 
@ECHO OFF 
@ECHO **** Run NC-Generator WOODWOP 4.0 **** 
NCWEEKE.exe -n=C:/WW4/$wrtID/$wrtID-sl.mpr 
NCWEEKE.exe -n=C:/WW4/$wrtID/$wrtID-sr.mpr 
NCWEEKE.exe -n=C:/WW4/$wrtID/$wrtID-tb.mpr 
NCWEEKE.exe -n=C:/WW4/$wrtID/$wrtID-dc.mpr 
@ECHO **** Done **** 
"; 
fwrite($batfile, $txt); 
fclose($batfile); 
?> 

<?php 
$slfile = fopen("CNC/$wrtID/$wrtID-sl.mpr", "w") or die("Unable to open file!"); 
$txt = " 

include("defaultcnc.php"); 

if (additional file pats needed) { 
    include("component-1.php"); 
} 

"; 

fwrite($slfile, $txt); 
fclose($slfile); 
?> 

回答

0

我在第一個代碼塊中看不到問題。

在第二個塊上,解釋器會考慮第二個雙引號表示字符串$txt = " include("的末尾。所以之後的所有內容都會產生PHP錯誤。

但即使你轉義那些mpr文件將有字符串include("defaultcnc,php");但不是該文件的實際內容。爲此,你應該做file_get_contents("defaultcnc.php")

類似:

<?php 
$slfile = fopen("CNC/$wrtID/$wrtID-sl.mpr", "w") or die("Unable to open file!"); 
// set params to pass to defaultcnc.php 
$value1 = 1; 
$value2 = "I'm a text string"; 
$file = urlencode("defaultcnc.php?key1=".$value1."&key2=".$value2); 
$txt = file_get_contents($file); 

if (additional file pats needed) { 
    $txt .= file_get_contents("component-1.php"); 
} 

fwrite($slfile, $txt); 
fclose($slfile); 
?> 

我認爲additional file pats needed意味着什麼給你。它應該是一個評估真假的條件。

+0

我會試試這個。是的,如果新文件需要額外的組件,那麼if語句將具有true,false。如果默認文件包含很多「」,會不會有問題? – heykarch

+0

如果文件有很多空格,我認爲從PHP方面來說沒有任何問題。我不知道mpr文件是什麼,所以不知道這方面。 –

+0

這工作很好唯一的問題,我需要在寫入文件之前插入一些變量到默認文件。有沒有辦法做到這一點? – heykarch