在php字符串的第二个斜线后插入一些文字?

我一直在使用这段代码

<?php
class PerchTemplateFilter_sol_en_cat_path extends PerchTemplateFilter {
    public function filterAfterProcessing($value, $valueIsMarkup = false) {

        // ORIGINAL STRING: solutions-en/rail-technologies/track-components/name-of-product
        $mystring = $value;
        $replace = ['solutions-en', '%2F'];
        $str = '';

        $oldstr = str_replace($replace, $str, $mystring);

        $str_to_insert = 'XXX';
        $findme = '/';
        $pos = strpos($mystring, $findme); // I NEED THIS TO INSERT $str_to_insert AFTER THE SECOND FORWARD SLASH FOUND IN THE ORIGINAL STRING?

        $value = substr_replace($oldstr, $str_to_insert, $pos, 0);

        return $value;

        // $value: /rail-technologies/track-components/XXX/name-of-product

        // Insert string at specified position
        // https://stackoverflow.com/questions/8251426/insert-string-at-specified-position
    }
}
PerchSystem::register_template_filter('sol_en_cat_path', 'PerchTemplateFilter_sol_en_cat_path');

?>

我的字符串是: solutions-en/rail-technologies/track-components/name-of-product

我想用..: /rail-technologies/XXX/track-components/name-of-product

XXX只是一个占位符

我想我需要做一些与 $pos 来设置我想要的位置 XXX 要添加到字符串中。

我需要在 第二 前进斜杠,因为字符串可能包含不同的文本。

上面的代码输出了这个字符串。/rail-technoXXXlogies/track-components/ewosr-switch-lock

我似乎不知道如何插入… … XXX 在第二次前砍后。

希望有人能提供一些帮助。

解决方案:

不如先爆炸成数组,然后内爆前两个项目。加入xxx,然后再内爆其他的项目?

function AddInTheMiddle($start, $where, $what){
    $arr = explode("/", $what);
    $str = implode("/", array_splice($arr,$start,$where)) . '/xxx/' . implode("/", $arr);;

    return $str;
}

$str = 'solutions-en/rail-technologies/track-components/name-of-product';
$str = AddInTheMiddle(1, 2, $str);

https:/3v4l.orgm98io

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何将列表中只包含值==3的列的元素子集?

2022-9-9 7:20:23

未分类

如何在页面上多次显示相同的<div> 块?

2022-9-9 7:31:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索