单引号和双重问题

时间:2011-10-03 04:08:51

标签: php xml

在PHP文件中,我将XML文件分配给输入变量

示例:

$xmlfile = '<?xml version="1.0" encoding="UTF-8"?>
<creators>
    <creator>
        <creatorName>Ganesh</creatorName>
    </creator>
</creators> 
<identifier identifierType="id">Dynamic input($input)</identifier>'; 

在动态输入的部分,我想声明一个像$ input这样的变量,它将基于之前的值。

如何在''(单引号)中声明变量($ input),因为声明会扰乱结构。

4 个答案:

答案 0 :(得分:2)

你可以concatenate进入:

$xmlfile = '<?xml version="1.0" encoding="UTF-8"?>
<creators>
    <creator>
        <creatorName>Toru, Nozawa</creatorName>
    </creator>
</creators> 
<identifier identifierType="id">Dynamic input(' . $input. ')</identifier>'; 

公平警告,XML无法保存所有值,因此您可能需要根据数据的来源转义数据 - 例如,您可能不需要任何尖括号,并且您当然需要清除任何控制字符。 / p>

答案 1 :(得分:2)

您必须使用double quotes或选择HEREDOC字符串。

$xmlfile = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<creators>
    <creator>
        <creatorName>Toru, Nozawa</creatorName>
    </creator>
</creators> 
<identifier identifierType=\"id\">Dynamic input($input)</identifier>";  

HEREDOC字符串:(<<<ABC是开放标识符,结束标识符必须从该行的第一列开始 - ABC

$xmlfile = <<<ABC
<?xml version="1.0" encoding="UTF-8"?>
<creators>
    <creator>
        <creatorName>Toru, Nozawa</creatorName>
    </creator>
</creators> 
<identifier identifierType="id">Dynamic input($input)</identifier>
ABC;

答案 2 :(得分:1)

尝试:

$xmlfile = '<?xml version="1.0" encoding="UTF-8"?>
<creators>
    <creator>
        <creatorName>Toru, Nozawa</creatorName>
    </creator>
</creators> 
<identifier identifierType="id">Dynamic input('.$input.')</identifier>'; 

答案 3 :(得分:1)

我更喜欢使用 concationation 而不是在双引号或HEREDOC中包含变量(但是如果文本足够长,HEREDOC会在我的首选项列表中显示),原因有三: 1)无需逃避所有双引号(不适用于HEREDOC,当然); 2)PHP解释器不需要在每个请求中反复解析长文本以查找内部的任何变量并将其替换为其值。
3)用变量名输入拼写错误的机会较少。