无法按字符拆分数组中的字符串

时间:2016-06-24 06:51:03

标签: php string wordpress

我正在使用Wordpress网站,我希望在提交后立即获得一些订单详情。其中一个,返回一个长字符串,我想拆分并根据需要格式化它。这是一个例子:

echo $order->get_formatted_shipping_address();
My name<br />My address<br />My postcode

我尝试在<br />中拆分字符串以使用不同位置的每个字段。我试过这样:

$data = explode("<br />", $order->get_formatted_shipping_address());
$name = $data[0];
$address = $data[1];
$post = $data[2];

但是,<br />会保留在字符串中,$name的字符串与$data中的字符串一样。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您的代码应该可以运行,我甚至在我的机器上进行了测试。将此代码放在一些新文件中,然后测试它以查看它是否给出了想要的结果。如果确实如此,那么你在这个地方犯了一个错误。您确定使用的是正确的变量吗?

<?php
    class wp {
        public function get_formatted_shipping_address() {
            return "My name<br />My address<br />My postcode";
        }
    }

    $order = new wp;

    $data = explode("<br />", $order->get_formatted_shipping_address());
    print_r($data);
    $name = $data[0];
    $address = $data[1];
    $post = $data[2];

答案 1 :(得分:0)

在WooCommerce 2.6.1上尝试了以下内容

$data = explode('<br/>',$order->get_formatted_shipping_address());

请注意,分隔符为<br/>,而不是您使用<br />时,您的分隔符会有额外的空间。

作为替代方案,您应该使用课程explode中的magic properties而不是WC_Abstract_Order

实施例

print $order->shipping_first_name;
print $order->shipping_address_1;
print $order->shipping_postcode;

这将输出字段而不通过implode

中发生的get_formatted_shipping_address()