0

例如,我得到一个数组作为参数

$data = array ( 'name' => 'makis', 'pw' => 'sovara');

我想用我得到的数组中的数据来完成下面的变量 $nxml。“名称”和“密码”。

        $nxml = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
            <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
            epp-1.0.xsd">
            <command>
            <login>
            <clID>$data['name']</clID>
            <pw>$data['pw']</pw>
            <options>
            <version>1.0</version>
            <lang>en</lang>
            </options>
            <svcs>
            <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
            <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
            <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
            </svcs>
            </login>
            <clTRID>nick-12345</clTRID>
            </command>
            </epp>';

导致我不断出错的正确方法是什么

4

7 回答 7

2

你可以试试这个:

$nxml = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
                <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
                epp-1.0.xsd">
                <command>
                <login>
                <clID>'.$data['name'].'</clID> //your original code <clID>$data['name']</clID> see the difference?
                <pw>'.$data['pw'].'</pw> //same thing here
                <options>
                <version>1.0</version>
                <lang>en</lang>
                </options>
                <svcs>
                <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
                <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
                <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
                </svcs>
                </login>
                <clTRID>nick-12345</clTRID>
                </command>
                </epp>';

您需要'正确逃脱才能使其正常工作。

于 2013-08-30T10:42:54.080 回答
1

让它像这样:

$nxml = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
            <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
            epp-1.0.xsd">
            <command>
            <login>
            <clID>'.$data['name'].'</clID>
            <pw>'.$data['pw'].'</pw>
            <options>
            <version>1.0</version>
            <lang>en</lang>
            </options>
            <svcs>
            <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
            <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
            <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
            </svcs>
            </login>
            <clTRID>nick-12345</clTRID>
            </command>
            </epp>';

在这种情况下,单引号不起作用。如果要显示变量的值,请使用双引号,但这会导致您对符号使用转义,因此我建议您使用单引号连接以避免复杂性。

于 2013-08-30T10:48:00.740 回答
0
$nxml = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
            <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
            epp-1.0.xsd">
            <command>
            <login>
            <clID>'.$data['name'].'</clID>
            <pw>'.$data['pw'].'</pw>
            <options>
            <version>1.0</version>
            <lang>en</lang>
            </options>
            <svcs>
            <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
            <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
            <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
            </svcs>
            </login>
            <clTRID>nick-12345</clTRID>
            </command>
            </epp>';
于 2013-08-30T10:42:10.097 回答
0

试试喜欢

$nxml = '....<clID>'.$data['name'].'</clID>
        <pw>'.$data['pw'].'</pw>....';

然后你的整个代码将是

$nxml = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
        <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
        epp-1.0.xsd">
        <command>
        <login>
        <clID>'.$data['name'].'</clID>
        <pw>'.$data['pw'].'</pw>
        <options>
        <version>1.0</version>
        <lang>en</lang>
        </options>
        <svcs>
        <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
        <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
        <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
        </svcs>
        </login>
        <clTRID>nick-12345</clTRID>
        </command>
        </epp>';
于 2013-08-30T10:42:36.130 回答
0

像这样尝试。因为你的转义不正确

$data = array ( 'name' => 'makis', 'pw' => 'sovara');
 $nxml = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
            <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
            epp-1.0.xsd">
            <command>
            <login>
            <clID>$data["name"]</clID>
            <pw>$data["pw"]</pw>
            <options>
            <version>1.0</version>
            <lang>en</lang>
            </options>
            <svcs>
            <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
            <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
            <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
            </svcs>
            </login>
            <clTRID>nick-12345</clTRID>
            </command>
            </epp>';
于 2013-08-30T10:43:08.910 回答
0

试试这个 :

<clID>"'.$data['name'].'"</clID>
<pw>"'.$data['pw'].'"</pw>
于 2013-08-30T10:45:25.937 回答
0

试试这个

<clID>"'.$data['name'].'"</clID>
<pw>"'.$data['pw'].'"</pw>
于 2013-08-30T10:47:28.523 回答