如何在php中为文本文件写一个方括号


How can I write a square bracket to a text file in php?

我正在尝试编写一个php脚本,该脚本将生成各种新的php页面,但我发现我无法写出方括号。当我以与其他字符(如[)相同的方式转义方括号时,前导''会写入新页面,这会导致代码不起作用:

echo $row'['Value''];

当我没有脱离括号时,页面会失败,当我尝试替换asc(91)时也会发生同样的事情。

我见过其他使用$row->Value之类代码的例子,但我尝试过,但没有成功。如果有人能帮我输出方括号,或者知道另一种方法,我可以在不使用方括号的情况下从一行中获取值,我将非常感谢

您的echo将显示为对PHP的数组引用。试试这个:

echo $row, "['Value'];"

假设您希望输出$row的值,而不是文本$row。如果你想要文字文本(例如,你正试图动态构建一个PHP脚本),那么这两种方法中的任何一种都可以:

echo '$row[''Value''];';
echo "'$row['Value'];";

这个怎么样:

echo sprintf("'$row['%s']", $value);  // either scenario
echo sprintf("%s['Value']", $row);  

请记住,PHP会自动解析双引号字符串("),并尝试在其中查找变量。因此,括号是可能不是问题,$变量前缀(与解析器结合)可能

还有其他几个答案有效,但我想详细说明:

"echo"构造可以采用变量或字符串。不能像处理变量那样将字符串回显到屏幕上。例如:echo hello;的行为不会像您想象的那样。您需要将其包含在报价中,如echo "hello";

您也可以使用单引号。单引号和双引号的表现不同。例如:

$foo = "bar";
echo $foo;
echo "$foo";
echo '$foo';

第一个将返回"bar",第二个也将返回"bar",因为PHP在双引号字符串中查找变量。第三个将回显"$foo",因为PHP不尝试在单引号字符串中进行变量替换。所以你可以做(正如@mark-b所说):

echo "'$row['Value']";

echo '$row[''Value'']';

现在,您看到的$row->value语法是对象表示法。假设$row是一个对象而不是一个数组。物体是另一回事。

您在问题中谈到的是代码生成,所以我希望您也希望在生成的代码中输出"echo"语句。假设你想把输出保存到一个文件中,这样它就可以很容易地执行,我想你应该使用fwrite或file_put_contents之类的东西。您需要从字符串的角度来思考,当您看到代码时,这可能有点棘手。

像这样的东西应该起作用:

fwrite($fp, 'echo $row[''Value''];'."'n");

注意单引号和双引号是如何工作的。''n被解析为换行符,但单引号中的任何内容都被视为字符串,并按原样打印,除了","应该在输出文件中打印文本单引号。

希望这能有所帮助。