使用php函数创建动态文本文件

时间:2014-04-17 08:49:46

标签: php function dynamic text concatenation

所以我需要根据php中变量的名称创建一个动态文本文件(例如:dynamicName.txt)。然后我需要在文件中写入其他变量。

$testVar = "test.txt";

function sendCalc(){
    global $testVar;
    $objCalcTxt = ("C:\\xampp\\htdocs\\test.new\\upload\\$testVar");
    $fp = fopen($objCalcTxt, 'x');
    fwrite($fp, "Test\n");
    fclose($fp);

当我执行上述操作时,创建的文件没有问题,并且所有数据都已成功写入。但是,这不是动态文件名。

$objName = "dynamicName";
$ext = ".txt"
$dynamicNameTxt = $objName.$ext;
function sendCalc(){
    global $objName;
    global $ext;
    global $dynamicNameTxt;
    $objCalcTxt = ("C:\\xampp\\htdocs\\test.new\\upload\\$dynamicNameTxt");
    $fp = fopen($objCalcTxt, 'x');
    fwrite($fp, "Test\n");
    fclose($fp);

当我尝试连接包含动态文件名($ objName)的变量和$ ext var时,它不想创建文件。

我回显了$ dynamicName var并返回dynamicName.txt,所以为什么这不能用fopen工作。基本上它必须是串联的问题吗?如果是这样,我可以以不同的方式连接,还是使用不同的方法打开/创建文件?

感谢所有帮助/想法。

2 个答案:

答案 0 :(得分:0)

我真的不知道你用线路想要实现的目标

$objCalcTxt = ("C:\\xampp\\htdocs\\test.new\\upload\\$dynamicNameTxt");

如果根据我的理解它应该只是一个字符串:

$objCalcTxt = "C:\\xampp\\htdocs\\test.new\\upload\\".$dynamicNameTxt;

另外我建议您提供所需的变量作为使用globals

的函数的参数
function sendCalc($objName, $ext, $dynamicNameTxt){
...
}

答案 1 :(得分:0)

您正在声明函数内的全局变量。这可能会破坏他们的初始价值。 而不是在函数中使用全局变量,而是将变量作为参数传递:

$objName = "dynamicName";
$ext = ".txt"
$dynamicNameTxt = $objName.$ext;
function sendCalc(objName, $ext, $dynamicNameTxt)
{
    $objCalcTxt = ("C:\\xampp\\htdocs\\test.new\\upload\\$dynamicNameTxt");
    $fp = fopen($objCalcTxt, 'x');
    fwrite($fp, "Test\n");
    fclose($fp);
}

您的另一个选择是专门调用全局变量:

global $objName;
global $ext;
global $dynamicNameTxt;
$objName = "dynamicName";
$ext = ".txt"
$dynamicNameTxt = $objName.$ext;
function sendCalc()
{
    $objCalcTxt = ("C:\\xampp\\htdocs\\test.new\\upload\\".$GLOBAL['dynamicNameTxt']);
    $fp = fopen($objCalcTxt, 'x');
    fwrite($fp, "Test\n");
    fclose($fp);
}