我们如何替换字符串中除第一个字符以外的所有匹配特殊字符?

时间:2019-03-08 12:34:07

标签: php

这是我的数据变量。

$data = "• Rohit • Mohit • Khusi";

我正在寻找以下输出

-Rohit<br/>
-Mohit<br/>
-Khusi.

我尝试过的是

str_replace("•", "<br/>-", $data);

但是我不想在第一个字符串的顶部使用换行符

4 个答案:

答案 0 :(得分:4)

我先将名称作为数组检索,然后按需要显示:

$data = '• Rohit • Mohit • Khusi';

$names = preg_split('/\s*•\s*/', $data, -1, PREG_SPLIT_NO_EMPTY);

foreach ($names as $i => $name) {
  echo '- ', $name, $i === count($names) - 1 ? '.' : '<br/>';
}

或者,您可以在检索名称后执行以下操作:

echo '-', implode('<br/>-', $names), '.';

演示:https://3v4l.org/GBa89

感谢@Nick在下面的评论中提供所有不错的建议。

答案 1 :(得分:2)

您可以在此处使用ltrim()删除第一个<br/>,例如:

$data = "• Rohit • Mohit • Khusi";
$data = str_replace("•", "<br/>-", trim($data));
echo ltrim($data,"<br/>"); // ltrim use here.

答案 2 :(得分:2)

您应该使用带有该字符的ltrim从左侧修剪,

<?php
$data = "• Rohit • Mohit • Khusi";
echo '-'.str_replace("•", "<br/>-", ltrim($data, '•'));
?>

答案 3 :(得分:1)

尝试一下

<?php
echo ltrim(str_replace(".","<br/>-",$data),"</br>");
?>