0

我有以下代码在邮政编码中放置一个空格。

(string)$postcode = $row['postcode'];
$first = substr($postcode, strlen($postcode)-3);
$second = substr($postcode, strlen($first));
$postcode = $first . ' ' . $second;

该代码适用于大多数代码,除了一些代码。IE

PN45HA 70448

我不明白为什么?任何人都可以对此有所了解吗?

谢谢

4

3 回答 3

4

不太明白这个问题,但如果它是关于空间的,这将起作用:

$postcode = 'PN45HA70448';
$postcode = substr($postcode, 0, -3) . ' ' . substr($postcode, -3);
// PN45HA70 448
于 2011-07-28T15:22:49.373 回答
0
$first = substr($postcode, 0, -3);
$second = substr($postcode, -3);
$postcode = $first . ' ' . $second;
于 2011-07-28T15:28:19.210 回答
0
$code = 'PN45HA 70448'
$first = substr($postcode, strlen($postcode)-3); // 448
$second = substr($postcode, strlen($first)); // PN45HA 70
$postcode = $first . ' ' . $second; // PN45HA 70 448

问题是并非所有邮政编码都是简单的 6 字符邮政编码。您只是在碰巧传入的任何字符串的最后 3 个字符之前添加空格。

您可能需要做的是使用正则表达式:

$code = preg_replace('/([A-Z][0-9][A-Z])\s*([0-9][A-Z][0-9])/', '\1 \2', $code);

这将采用任何看起来像邮政编码的字符串,在两半之间有可选的空格,并放在一个空格中。

于 2011-07-28T15:34:01.243 回答