Php 如何使此链接使脚本具有降价行为?
我正在使用PHP markdown,但我还需要一个脚本来将纯文本链接转换为可剪裁的链接。两者都是独立工作的,但当我试图同时运行它们时,如果我先运行markdown,makelinks仍然会处理html代码并将事情搞砸。。和。。反之亦然。你知道怎么阻止它那样做吗?我想不出正则表达式可以忽略降价样式的链接Php 如何使此链接使脚本具有降价行为?,php,regex,hyperlink,markdown,Php,Regex,Hyperlink,Markdown,我正在使用PHP markdown,但我还需要一个脚本来将纯文本链接转换为可剪裁的链接。两者都是独立工作的,但当我试图同时运行它们时,如果我先运行markdown,makelinks仍然会处理html代码并将事情搞砸。。和。。反之亦然。你知道怎么阻止它那样做吗?我想不出正则表达式可以忽略降价样式的链接 function makeLinks($text) { $text = preg_replace('%(((f|ht){1}tp://)[-a-zA-^Z0-9@:\%_\+.~#?&am
function makeLinks($text) {
$text = preg_replace('%(((f|ht){1}tp://)[-a-zA-^Z0-9@:\%_\+.~#?&//=]+)%i',
'<a href="\\1">\\1</a>', $text);
$text = preg_replace('%([[:space:]()[{}])(www.[-a-zA-Z0-9@:\%_\+.~#?&//=]+)%i',
'\\1<a href="http://\\2">\\2</a>', $text);
return $text;
}
通过猜测和变通办法,可以最好地解决双链接问题。(我们有一些重复的问题,但我找不到一个好问题。) 由于已转换的
http://
-URL仅出现在href=“
或
之后,因此您可以将其用于否定断言
(?<!href="|>)
(?)(((f|ht){1}tp://)。。。
您的第二个正则表达式使用:space:作为锚点,因此应该已经具有容错能力。太棒了!它(看起来)工作得很好。谢谢。
(?<!href="|>)
$text = preg_replace('%(?<!href="|>)(((f|ht){1}tp://)...