我只想使用preg_replace()
将绝对服务器转换为相对网址。但我的正则表达式知识是零。我怎么能这样做?
示例:
<a href="http://mysite.localhost.com/admin/structure">Some text</a>
到
<a href="/admin/structure">Some text </a>
谢谢。
答案 0 :(得分:0)
使用PHP的str_replace()函数可以更快地完成此操作。即:
$href = str_replace('http://mysite.localhost.com', '', $href);
优点是与preg_replace()相比,str_replace()在服务器上的开销要小得多。
答案 1 :(得分:0)
这会将<a>
标记中的每个绝对链接转换为相对链接:
<?php
$html = '<a href="http://mysite.localhost.com/admin/structure">Some text</a>';
echo preg_replace('#<a ([^\>]+)href=["\']?https?://[^/]+(/[^\s]+)["\']?([^\>]+)>#i', '<a $1href="$2"$3>', $html);
返回<a href="/admin/structure">Some text</a>