我不确定如何说出标题,但我正在努力实现以下目标:
$string = 'category/(.*)/page/([0-9]+)'
我需要通过传递一系列参数将其转换为category/test/page/2
:
Array
(
[0] => test
[1] => 2
)
执行$string = preg_replace('#^'.$string.'$#', $replacements, $string)
会导致$replacements
成为数组的错误,与the documentation所说的匹配,但我不确定该怎么做。
我无法真正理解模式并且主题开始相同的字符串。
答案 0 :(得分:2)
你可以制作一个 new 正则表达式来匹配你想要的字符串。您必须制作与文字字符串(.*)
和([0-9]+)
匹配的内容。这样的事情,也许是:
/(.+)\/(\(.+\))\/(.+)\/(\(.+\))/
然后你可以尝试这样做:
$string = preg_replace('/(.+)\/(\(.+\))\/(.+)\/(\(.+\))/', '$1/test/$3/2', $string);
或使用$replacements
:
$string = preg_replace(
'/(.+)\/(\(.+\))\/(.+)\/(\(.+\))/',
'$1/'.$replacements[0].'/$3/'.$replacements[1],
$string
);