2013-10-04 55 views
1

我需要更换curl拍摄的页面中的URL并添加正确的链接。我的PHP代码卷曲是:preg_replace更改链接href值,但不是在src

<?php 

$string = '<a href="http://host.org"><img src="./sec.png"></a>'; 

$string = preg_replace('/href="(http:\/\/([^\/]+)\/)?([^"]+)"/', "href=\"http://google.com/\\3\"", $string); 

echo $string; 

?> 

当链接为“a”它切割所有链接,只留下href的值。

//from 
<a href="http://host.org"><img src="./sec.png"></a> 

//to BUGgg when href fix make : 
<a href="http://google.com/./sec.png"></a> 

任何机构都可以帮助修复它。

+0

[从HREF预浸\ _replace变化链接](可能重复http://stackoverflow.com/问题/ 19190180/preg-replace-change-link-from-href) – Jerry

+0

哦,不存在重复,第一个是preg_match来查找是否存在http链接,我已将其切断,以使问题更简单。谢谢。 – Eugenia

回答

1

以下的preg_replace应该工作:

preg_replace('/href="(http:\/\/[^\/"]+\/?)?([^"]*)"/', "href=\"http://google.com/\\2\"", $result); 
1

从你的正则表达式中删除此多余的部分:([^/]+)/