0

对于按 导入文章wpallimport,我希望它们属于正确的类别。在 csv 文件中有一个包含多个(子)类别的列,由空格分隔。>现在我想通过函数来​​替换空格str_replace,只有带有文本“abcd & efgh”的文章组,空格和&空格也必须用>符号替换。这可能吗?

值为groep[1]PRINTER INKT & PAPIER

[str_replace(" ", ">", {groep[1]})]

结果是:

printer (group)
--inkt  (subgroup)
---&    (subgroup)
----papier (subgroup)

结果我需要:

printer (group)
-inkt & papier (subgroup)
4

1 回答 1

0

您可以使用正则表达式函数,而不是 plain str_replace

函数将查找字符串中所有出现的模式,并在输出数组的第一个元素中返回它们preg_match_all($pattern, $string, $matches)$matches

  $s = "PRINTER INKT & PAPIER ONE & TWO & THREE";
  if (preg_match_all('#\S+(\s&\s\S+)*#', $s, $matches)) {
    // $matches[0] - is an array, which contains all parts
    print_r($matches[0]);
    // to assemble them back into a string, using another delimiter, use implode:
    $newstr = implode('>', $matches[0]);
    print($newstr); // PRINTER>INKT & PAPIER>ONE & TWO & THREE
  }

UPD。 如果您坚持str_replace只使用,那么您可以应用它两次:第一次 - 将所有空格替换为>,然后第二次 - 替换>&>&

  $s = "PRINTER INKT & PAPIER ONE & TWO & THREE";

  $newstr = str_replace('>&>', ' & ', str_replace(' ', '>', $s));
  print ($newstr); // PRINTER>INKT & PAPIER>ONE & TWO & THREE
于 2019-09-11T13:14:41.947 回答