我有一个textarea,我正在输入数据以将其放入我需要的格式。我输入的数据如下所示:
POTTERTON PUMA 80 E(SIT / HONEYWELL)(此型号的所有部件)
POTTERTON PUMA 80 E(SIT / HONEYWELL)(框架 - 管道)
POTTERTON TATTLER KINGFISHER RS 46(此型号的所有部件)
POTTERTON PUMA 100 E(SIT / HONEYWELL(此型号的所有部件)
POTTERTON PUMA 100 E(SIT / HONEYWELL(FRAME - PIPEWORK)
有时会有两组括号,有时会有一组,有时会有一个未闭合的括号,然后是另一组。因此,一旦处理完数据,它应该如下所示:
POTTERTON PUMA 80 E(SIT / HONEYWELL),POTTERTON TATTLER KINGFISHER RS 46,POTTERTON PUMA 100 E(SIT / HONEYWELL
所以我基本上希望删除重复出现并删除最后一个括号。我编写的代码完成了大部分数据的工作,但删除了所有括号。
这是我的代码:
<?php
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
?>
<form action="<?php the_permalink(); ?>" method="post">
<textarea style="width:1000px;height:350px;" name="like"></textarea>
<button>Submit</button>
</form>
<?php
} else {
$fits = $_POST['like'];
$fits = str_replace(" (","(",$fits);
$fits = preg_replace("/\([^\)]+\)/","", $fits);
$fits = explode("\n", str_replace("\r", "", $fits));
$fits = array_unique($fits);
$comma_separated = implode(', ', $fits);
echo $comma_separated;
}
?>
答案 0 :(得分:1)
更改行:
$fits = preg_replace("/\([^\)]+\)/","", $fits);
到
$fits = preg_replace("/\([^\)]+\)(\R|$)/","$1", $fits);
答案 1 :(得分:0)
您可以使用基于正则表达式的搜索并替换:
$line = preg_replace(
array('~(*ANYCRLF)^(.*)\s+\([^\(\)]+\)$~m', '~(*ANYCRLF)\R~'),
array('$1', ','),
$block
);