我有一个带有很多链接的PHP字符串$menu 。我需要用基于链接的 ID 替换 href。
我需要
- 删除域
- 删除开头和结尾的斜线
- 用'-'替换中间的斜线
这是我所拥有的:
<a href="http://www.test.de/start/">Link</a>
<a href="http://www.test.de/contact/">Another Link</a>
<a href="http://www.test.de/contact/sub/">Sub Link</a>
这就是我想要的:
<a href="#start">Link</a>
<a href="#contact">Another Link</a>
<a href="#contact-sub">Another Link</a>
我用preg_replace 试过了
$search = array(
"/http:\/\/www.test.de/",
"/".preg_quote('/">', '/')."/"
);
$replacement = array('#','">');
$menu = preg_replace($search,$replacement,$menu);
我的解决方案看起来有点“脏”,并没有取代中间的斜线。任何关于“真实”模式的想法来完成这个?