-3

我需要 PHP 中的函数来处理类似这样的替换。

$pattern = ':foo/anotherString';

$replacement = array(
    'foo' => 'HelloMe'
);

bazFunction($pattern, $replacement); // return 'HelloMe/anotherString';

这种方法在某些框架中用作路由模式。我想知道哪个函数处理那个。

4

3 回答 3

1
$string = "foo/anotherString";
$replacement = array('foo','HelloMe');
$newString = str_replace($replacement[],,$string);
于 2012-07-30T09:16:25.310 回答
1

这应该可以(因为关闭需要 5.3)

function my_replace($pattern, $replacement) {
  // add ':' prefix to every key
  $keys = array_map(function($element) {
    return ':' . $element;
  }, array_keys($replacement));

  return str_replace($keys, array_values($replacement), $pattern);
}

如果您将内容直接传递给,则不需要此功能str_replace

str_replace(array(':foo'), array('HelloMe'), ':foo/anotherString');
于 2012-07-30T09:18:20.970 回答
0

似乎php为您提供了该功能...

str_replace ( ":foo", "HelloMe" , $pattern )

会给你这个输出:HelloMe/anotherString

于 2012-07-30T09:18:11.683 回答