我已经搜索过了,但找不到我要找的东西。
正常情况下是这样的:
<p>
Hi how are you? Have you checked <a href="http://www.google.com">Google</a> or <a href="http://www.youtube.com">YouTube</a>?
</p>
但我很想拥有的,因为我愿意将其应用于打印或PDF页面,如下所示:
<p>
Hi how are you? Have you checked <a href="http://www.google.com">Google</a> (<a href="http://www.google.com">http://www.google.com</a>)
or <a href="http://www.youtube.com">YouTube</a> (<a href="http://www.youtube.com">http://www.youtube.com</a>)?
</p>
现在,我知道regex应该有一些工作,但我不知道如何使用它。文本将取自包含文章的变量$content,我希望$content中的所有链接保持原样,再加上href的内容作为括号"()"内的附加超链接,这样,假设当有人阅读超链接所在的打印文章时,他们就能看到实际的URL。
使用伪元素在链接后添加href
,类似于:
a[href]:after
{
content: " (" attr(href) ") ";
}
这里有一个方便的小函数就足够了。
<?php
/**@var string $strInput THE STRING TO BE FILTERED */
function doubleUpOnURL($strInput){
$arrAnchorSplit = preg_split("#<'/a>#", $strInput);
$strOutput = "";
$anchorRegX = '(<a's*href=['''"])(.+)(['''"]>)(.*)';
foreach($arrAnchorSplit as $anchoredString){
$strOutput .= preg_replace("#" . $anchorRegX . "#si" , "$1$2$3$4</a> ($1$2$3$2</a>)", $anchoredString);
}
return $strOutput;
}
$strInput = '<p>Hi how are you? Have you checked <a href="http://www.google.com">Google</a> or <a href="http://www.youtube.com">YouTube</a>?</p>';
echo(doubleUpOnURL($strInput));
//OUTPUTS:
// Hi how are you? Have you checked Google (http://www.google.com) or YouTube (http://www.youtube.com)?
我希望你觉得它有帮助。。。