我需要使用正则表达式来搜索字符串并修复某些网址。我需要删除像这样的开头/链接:
/admin.somedomain.com或/somedomain.com
还有很多其他的绝对网址,所以我不能删除任何领先/字符。 任何帮助将不胜感激。
这是处理用户输入的文本,通常是来自TinyMCE的html,但有时来自带有和不带有其他HTML的纯文本框(或者我会以不同的方式处理它并直接处理链接而不必首先为它们搜索字符串)。不幸的是,有时为href或img src等输入的网址不正确。
我确实想要像这样的链接 “/image.jpg” “/ web应用/ GETFILE?ID = 3354”
但不是像 “/somedomain.com” “/admin.somedomain.com”
以下是我可能需要清理的文字示例
<p><a href="/webapp/GetFile?id={2C59BC2D}"><img src="/wahelper/GetImage?id=308" alt="" width="100" height="100" /></a></p> <p><a href="/admin.somedomain.com">test</a></p>
答案 0 :(得分:0)
$str = preg_replace( "/^\/((?:admin\.)?[^.]+.(?:com|net|other_TLD_you_want))/i", "http://$1", $str);
请注意,我实际上已将/
替换为http://
,因为如果您希望链接正常工作,那就是您想要的。如果您只是剥离/
,那么该链接将最终成为当前目录中名为admin.somedomain.com
的本地文件的链接 - 这可能不是您想要的。
另请注意,您可能需要更多TLD而不仅仅是com
和net
- 根据需要添加它们。
另请注意,这不适用于co.uk