gpt4 book ai didi

php - 为什么 str replace 仅在第一次匹配时起作用?

转载 作者:行者123 更新时间:2023-11-28 11:46:38 25 4
gpt4 key购买 nike

我的代码:

$css=".class1{
padding:1330px 2220px 0 auto;
padding:10px auto 0 20px;
padding:101px auto 0 200px;
}";

$search=self::extract_unit($css,"padding:",";");

extract_unit:该函数提取[padding:]和[;]之间的内容

将返回 1330px auto 0 2220px

$replace=self::resort_padding_margin($search);

resort_padding_margin:这个函数对内容进行resort

将返回 1330px 2220px 0 auto

$css = str_replace($search, $replace, $css);
echo $css;

当我应用此代码时,结果将显示如下:

.class1{
padding:1330px auto 0 2220px;
padding:10px auto 0 20px;
padding:101px auto 0 200px;
}

那么我如何使用这种方法来应用所有填充以像这样显示

.class1{
padding:1330px auto 0 2220px;
padding:10px 20px 0 auto;
padding:101px 200px 0 auto;
}

最佳答案

为此,您的 self::extract_unit 方法必须返回一个数组,每次出现 padding 一个元素。

然后您的self::resort_padding_margin 应该接受搜索数组并返回另一个包含修改的数组。或者,在您的主代码中编写一个循环,并将每次调用此方法的结果存储在一个数组中。

完成后,您可以将两个数组传递给 str_replace

顺便说一句,一个 CSS 应该只有一个 padding 定义。你有三个,这有点奇怪:)

关于php - 为什么 str replace 仅在第一次匹配时起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10665691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com