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

使用php函数创建动态文本文件,php,function,dynamic,text,concatenation,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,

因此,我需要根据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连接起来时,它不想创建该文件

$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);
我重复了$dynamicName变量,它返回dynamicName.txt,那么为什么fopen不能使用它呢。从本质上讲,这是一个连接问题,对吗?如果是这样,我可以用不同的方式连接,或者使用不同的方法打开/创建文件吗


非常感谢您提供的所有帮助/想法。

我真的不知道您想通过这条线路实现什么目标

$objCalcTxt = ("C:\\xampp\\htdocs\\test.new\\upload\\$dynamicNameTxt");
如果根据我的理解,它应该只是一个字符串:

$objCalcTxt = "C:\\xampp\\htdocs\\test.new\\upload\\".$dynamicNameTxt;
另外,我建议您提供所需的变量作为函数的参数,而不是使用
globals

function sendCalc($objName, $ext, $dynamicNameTxt){
...
}

您正在函数中声明全局变量。这可能会破坏它们的初始值。 与其在函数中使用全局变量,不如将变量作为参数传递:

$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);
}

$objCalcTxt仅用于确定路径。至于使用变量作为参数,我不太确定。我最初使用global使它们在函数中可用,以便将它们的值写入文本文件。实现这种行为的正常方法是将它们作为参数提供给函数。建议的更改是否有效?请在
fopen
之前直接尝试调试输出,看看路径是否正确。下面是我得到的4种错误类型。sendCalc()缺少参数1,在第375行的C:\xampp\htdocs\test.new\calcPage.php中调用,在第332行的C:\xampp\htdocs\test.new\calcPage.php中定义。未定义的变量:在第344行的C:\xampp\htdocs\test.new\calcPage.php中的dynamicNameTxt