开发者

How to make this linking making script behave with markdown?

I'm using PHP markdown but I also need a script to convert plaintext links into clicakable ones. Both work independently, but when I try to run them together, if I run markdown first, the makelinks still processes on the html code and screws things up.. and.. vice versa. Any idea of how to stop it from doing that? I can't figure out regex to ignore the markdown style links

function ma开发者_如何转开发keLinks($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;
}

sample text:

###[Title Section](http://domain/folder/page.html)
- Blah blah some text and then a link: www.webpage.org. 


The double-linkify problem can be solved best with guesswork and workarounds. (We have some duplicate questions, but I can never find a good one..)

Since already converted http://-urls only occur right after href=" or an >, you can use those for negative assertions.

(?<!href="|>)

Should be written at the start of your first regex:

$text = preg_replace('%(?<!href="|>)(((f|ht){1}tp://)...

Your second regex uses the :space: as anchor, so should be fault tolerant already.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜