如何使用PHP解析或转换链接到正确的<a>
链接格式?
"http://developer.postmarkapp.com/developer-inbound-webhook.html"
这里有什么邮戳JSON API StrippedTextReply
响应:
"This is example body with link <http://developer.postmarkapp.com/developer-process-parse.html>"
Possible format:
This is example body with (any link) <http://>
This is example body with <http://> (any link)
期待结果:
'This is example body with <a href="http://developer.postmarkapp.com/developer-process-parse.html">link</a>'
请注意动态中锚点的文本,即字符串中的URL之前。
答案 0 :(得分:2)
在 preg_replace()
用锚替换URL。正则表达式选择URL并将其替换为锚标记,在 href
属性中包含该URL。
preg_replace(“/([\ w] ] +)[\ s] +&lt;([^>] +)&gt; /“,”&lt; a href ='$ 2'&gt; $ 1&lt; / a&gt;“,$ str);&#xA;
&#xA;&#xA; 编辑:&#xA;如果锚点的文字位置在字符串未知(在URL之前或之后),您需要使用 preg_replace_callback()
来检查匹配组的值。
preg_replace_callback(“/([\ w] +)[\ s] +&lt;([^&gt;] +)&gt;([\ w \ s] +)?/“,function($ matches){&#xA; if(isset($ matches [3]))& #xA;返回“{$ matches [1]}&lt; a href ='{$ matches [2]}'&gt; {$ matches [3]}&lt; / a&gt;”;&#xA; else&#xA ;返回“&lt; a href ='{$ matches [2]}'&gt; {$ matches [1]}&lt; / a&gt;”;&#xA;},$ str);&#xA;
&#XA;