【发布时间】:2013-08-11 13:47:17
【问题描述】:
我遇到了一个菜鸟墙,我不确定如何克服它。
当显示来自数据库的某些内容时,该内容将包含 HTML 标记。
其中一个标签是<a> 链接。
它的 href 将等于以下任何一个。
http://www.example.com
http://www.example.com/
http://www.example.com/some/other/stuff
/some/other/stuff
/
www.example.com
www.example.com/
我需要做的,我已经尝试了使用 str_replace() 的逻辑,但我无法让它 100% 正常工作......将上述所有链接转至此。
http://www.example.com/2012_2013
http://www.example.com/2012_2013/
/2012_2013/some/other/stuff
/2012_2013
www.example.com/2012_2013
www.example.com/2012_2013/
我的问题主要是转弯
/some/other/stuff
进入
/2012_2013/some/other/stuff
当我不知道/this/could/be 是什么时,我该如何找到它并在前面加上/2012_2013
这似乎不是 100% 工作
$content = str_replace("http://www.example.com/","http://www.example.com/2012_2013/",$wData['field_id_2']);
$content = str_replace('href="/"','href="/2012_2013/"',$content);
echo $content;
提前致谢。
【问题讨论】:
-
这些文件夹实际上存在于您的系统中,对吧?
-
不,它们是其他页面的 URL。
-
php.net/parse_url 是你的朋友。当 PHP 已经为您完成所有这些时,不要尝试构建您自己的正则表达式。再加上 DOM 来实际找到
<a>标签并获取它们的 src,你就会被设置。 -
谢谢,我会看看 parse_url。需要学习的东西:)。
-
请为此问题选择一个答案。
标签: php regex hyperlink str-replace