如何用新线替换空间

时间:2014-09-03 19:28:58

标签: php regex

我有一个PHP变量,其中包含用空格分隔的数字。我想用新行替换每个空格,然后将这些数字放入列表或HTML表格中。

这是一个示例字符串:

$numbers = "9844786187 9844786187 9864097002 9864097002 9590951428 9590951428 9839014611 9839014611 9039771174 9039771174";

这些数字是动态的,可能会有更多或更少的数字。

如何实现输出?

2 个答案:

答案 0 :(得分:2)

根据建议,您可以使用str_replace():

$numbers = str_replace(' ', '\n', $numbers);

preg_replace是一个“超级”str_replace(),使用正则表达式,你可以用同样的方式使用它

$numbers = preg_replace('/ /', '\n', $numbers);

那些/是分隔符。在你的情况下,正则表达式是无用的。你应该使用str_replace。

正如Daryll Gill建议的那样,使用:

$numbers = str_replace(' ', '<br>', $numbers);

将为网络打印提供更好的结果。您可以在打印时使用nl2br()功能对第一个替换提案获得相同的结果

答案 1 :(得分:1)

我(认为我)澄清了您的问题并相信您正在尝试将字符串中的数字列表(以空格分隔)并以不同方式输出(例如,列表)或表)。你要我们使用的方法听起来并不是最好的。相反,我会建议explode()

$numbers = "9844786187 9844786187 9864097002 9864097002 9590951428 9590951428 9839014611 9839014611 9039771174 9039771174";
$number_array = explode(" ", $numbers);

echo "<ul>\n";
foreach($number_array as $number){
 echo "\t<li>$number</li>\n";
}
echo "</ul>\n"

输出:

<ul>
    <li>9844786187</li>
    <li>9844786187</li>
    <li>9864097002</li>
    <li>9864097002</li>
    <li>9590951428</li>
    <li>9590951428</li>
    <li>9839014611</li>
    <li>9839014611</li>
    <li>9039771174</li>
    <li>9039771174</li>
<ul>