php 使用脚本更改字符串

wnavrhmk  于 2023-06-04  发布在  PHP
关注(0)|答案(2)|浏览(479)

我在一个网站上,我正在寻找更换2字符串与对方。
我有两个字符串,名为CartBag。我想修改购物车的位置,将替换为购物袋,修改购物袋的位置,将替换为购物车
我使用下面的PHP代码来改变字符串:

add_filter( 'gettext', function ( $strings ) {
    $text = array(
        'Bag' => 'Cart',
        'Cart' => 'Bag',
    );
    $strings = str_ireplace( array_keys( $text ), $text, $strings );
    return $strings;
}, 20 );

其结果是将所有CartBag字符串显示为Bag
有没有人可以指导我在这里可以做什么更正?
或者任何可以帮助的脚本?
TIA。

t5zmwmid

t5zmwmid1#

让我们以$strings为例。

Bag Cart Cart Bag

str_ireplace逐个搜索给定的针,并将它们替换为替换数组中的相应值(作为第二个参数传递)。
在这个过程中,字符串变成了
虽然有多种方法可以解决这个问题,但我更喜欢下面的方法。

  • 基于空格分解字符串。
  • 使用array_map将分解数组中的每个值Map到$text中的值。
  • 将数组内爆回字符串。
    片段:
<?php

$strings = implode(" ", array_map(fn($v) => $text[$v] ?? $v, explode(" ", $strings)));

Online Demo

nwlls2ji

nwlls2ji2#

将字符串拆分为数组,然后将cart替换为bag,反之亦然,然后再次加入数组。

const str = "This is a cart and bag, cart is cart and bag is bag"
let arr = str.split(" ");
let r = arr.map((s) => s.includes('cart') ? s.replace('cart', 'bag') : s.includes('bag') ? s.replace('bag', 'cart') : s)

let ans = r.join(" ")
console.log(ans)

相关问题