如何在PHP中将方括号写入文本文件?

问题描述

| 我正在尝试编写一个PHP脚本,该脚本将生成各种新的PHP页面,但是我发现自己无法写出方括号。当我以与其他字符(即[])相同的方式转义方括号时,前导\\将写入新页面,这将导致代码无法正常工作:
echo $row\\[\'Value\'\\];
当我不逃避括号时,页面将失败,并且当我尝试替换asc(91)时也会发生相同的情况。 我看过其他使用$ row-> Value之类的代码的示例,但是我尝试了一下,但是没有用。如果有人可以帮助我输出方括号,或者知道另一种方法可以完全不使用而从一行中获取值,我将不胜感激     

解决方法

        您的回声将显示为对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;
的行为不会像您想象的那样。您需要将其包含在诸如“ s8”之类的引号中 您也可以使用单引号。单引号和双引号的行为不同。例如:
$foo = \"bar\";
echo $foo;
echo \"$foo\";
echo \'$foo\';
第一个将回显\“ bar \”,第二个也将回显\“ bar \”,因为PHP在双引号字符串中查找变量。第三个将回显\'$ foo \',因为PHP不会尝试在单个引用的字符串中进行变量替换。因此,您可以执行此操作(如@ mark-b所说):
echo \"\\$row[\'Value\']\";
要么
echo \'$row[\\\'Value\\\']\';
现在,您看到的“ 12”语法是对象符号。假设“ 2”是一个对象而不是一个数组。物体是另外一个整体。     ,        您正在谈论问题中的代码生成,因此我希望您也希望在生成的代码中输出\'echo \'语句。假设您希望将输出保存到文件中以便可以轻松执行,那么我想使用fwrite或file_put_contents之类的东西。您需要考虑字符串,这在您查看代码时可能会有些棘手。 这样的事情应该起作用:
fwrite($fp,\'echo $row[\\\'Value\\\'];\'.\"\\n\");
请注意单引号和双引号如何工作。 \\ n解析为换行符,但单引号中的所有内容均视为字符串并按原样打印,除了\\\',后者应在输出文件中打印文字单引号。 希望这可以帮助。