PHP preg_replace链接获取href和锚文本并连接它

时间:2017-06-21 14:55:38

标签: php html regex parsing

我在php中需要一些正则表达式操作的帮助。

我有字符串,例如

$string = 'This article is about something. If You want more  
<a href='http://www.google.com'>click here</a>. If not just close

我想得到这样的结果:

$string = 'This article is about something. If You want more click here -
http://google.com. If not just close

我怎么能在PHP中做到这一点?我不能使用简单的html解析器和其他库

请帮助,我不知道如何实现这个

1 个答案:

答案 0 :(得分:0)

无法在一步中找到完成所有操作的方法,但这应该有效:

<?php
$link = "This article is about something. If You want more <a href='http://www.google.com'>click here</a>. If not just close"; 
preg_match_all('/<a[^>]+href=([\'"])(.+?)\1[^>]*>/i', $link, $result); // Grab the href
$link = preg_replace("/<a href=.*?>(.*?)<\/a>/",$result[2][0],$link); // remove a tag and replace with href value
echo $link;
// output: This article is about something. If You want more http://www.google.com. If not just close
    ?>