0

我有一个需要使用 PHP 提交的 xml。从 xml 中的 3 个 PHP 变量来看,$shippingMode 是一个字符串,它没有被正确传递。我尝试了多种方法,但没有任何帮助。这是代码:

$zip = 90002;
$pounds = 0.1;
$shippingMode = "Express";

function USPSParcelRate($pounds,$zip) {
$url = "http://production.shippingapis.com/shippingAPI.dll";

$devurl ="testing.shippingapis.com/ShippingAPITest.dll";
$service = "RateV4";
$xml = rawurlencode("<RateV4Request USERID='USER' >
<Revision/>
     <Package ID='1ST'>
          <Service>'".$shippingMode."'</Service>
          <ZipOrigination>10025</ZipOrigination>
          <ZipDestination>".$zip."</ZipDestination>
          <Pounds>".$pounds."</Pounds>
          <Ounces>0</Ounces>
          <Container></Container>
          <Size>REGULAR</Size>
          <Width></Width>
          <Length></Length>
          <Height></Height>
          <Girth></Girth>
     </Package>
</RateV4Request>");

我也尝试过$shippingMode直接放置而不连接。要不就".$shippingMode."

知道在 XML 中使用字符串最安全、最正确的方法是什么吗?

4

2 回答 2

1

您正在分配函数$shippingMode范围之外的变量USPSParcelRate()。为了在函数中使用它,您需要将它作为参数传递:

function USPSParcelRate($pounds,$zip,$shippingMode) {
    ...
}

编辑:

如发布的那样,您的代码缺少函数上的右花括号,因此如果未将其重新添加,则会引发错误。这是完整的代码,包括声明后的函数调用:

<?php

function USPSParcelRate($pounds,$zip,$shippingMode) {

    $url = "http://production.shippingapis.com/shippingAPI.dll";
    $devurl ="testing.shippingapis.com/ShippingAPITest.dll";
    $service = "RateV4";
    $xml = "<RateV4Request USERID='USER'>
    <Revision/>
        <Package ID='1ST'>
            <Service>'".$shippingMode."'</Service>
            <ZipOrigination>10025</ZipOrigination>
            <ZipDestination>".$zip."</ZipDestination>
            <Pounds>".$pounds."</Pounds>
            <Ounces>0</Ounces>
            <Container></Container>
            <Size>REGULAR</Size>
            <Width></Width>
            <Length></Length>
            <Height></Height>
            <Girth></Girth>
        </Package>
    </RateV4Request>";

    print_r($xml); // for debugging

}

$zip = 90002;
$pounds = 0.1;
$shippingMode = "Express";

USPSParcelRate($pounds,$zip,$shippingMode); // function invocation

?>
于 2013-06-11T01:53:58.050 回答
1

您没有将其调用到您的功能中....

它需要作为参数添加。像这样......

function USPSParcelRate($pounds,$zip,$shippingMode) {

 }
于 2013-06-11T01:57:50.897 回答